You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by GitBox <gi...@apache.org> on 2020/01/02 22:19:23 UTC

[GitHub] [couchdb] kocolosk commented on a change in pull request #2367: Rework CI setup

kocolosk commented on a change in pull request #2367: Rework CI setup
URL: https://github.com/apache/couchdb/pull/2367#discussion_r362650389
 
 

 ##########
 File path: build-aux/README.Jenkins
 ##########
 @@ -0,0 +1,150 @@
+# Building with a dedicated Jenkins CI instance
+
+## History
+
+Around April 2019, once Travis CI performance became so abysmal that the
+development team couldn't tolerate it any longer. We decided to move off
+of it entirely and onto our own dedicated Jenkins instance. Performance
+was bad because:
+
+* The Travis CI VMs are severely underpowered, leading to many
+  unexpected test failures
+* The ASF wait queue for Travis was exceedingly long, with jobs
+  sometimes taking 30-45 minutes just to _launch_
+* Our test suites (all 3 of Erlang, JavaScript and Elixir) had
+  sporadic failures, requiring many re-launches of builds before
+  we could move forward
+
+We also had other reasons to want to move to a dedicated server:
+
+* Credentials on the main Jenkins instance could be reused by *anyone*
+  in the ASF
+* Credentials on the Travis CI setup should not contain credentials
+  for things such as building binaries, to ensure the best possible
+  security
+
+Other options we explored:
+
+* ASF BuildBot. This required a lot more work and couldn't guarantee
+  availability of sufficient workers.
+* Circle CI, GitHub CI, etc.: Lack of availability of alternate binary
+  platforms we've been asked to support (arm64v8, ppc64le) or alternate
+  OSes (OSX, FreeBSD, Windows), though there is some support for either
+  or both.
+
+## Cloudbees Core
+
+End of November 2019, ASF and CloudBees reached an agreement to allow
+the Foundation to use CloudBees Core to have a farm of managed Jenkins
+masters. This allows the ASF to give larger projects their own dedicated
+Jenkins master, which can be custom configured for the project. They can
+readily manage this farm of Jenkins masters centrally, including push
+updates to all masters and their plugins. Naturally, this also reduces
+contention, as well as providing increased security for project-level
+credentials.  CouchDB is the first project to use this setup, via
+jenkins-cm1.apache.org. A CNAME for ci.couchdb.org is being established
 
 Review comment:
   s/is being established/has been established/

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services