Dear EasyBuilders,

For a couple of weeks now, we have been evaluating Travis (https://travis-ci.org/) as an alternative to the Jenkins server hosted at the ICT department of Ghent University for testing the pull requests and the master/develop branches of the EasyBuild repositories on GitHub.

(note: this relates to the automated tests concerning only the unit test suites, not the actual build tests & test reports for easyconfig pull requests which a triggered by humans using 'eb --from-pr <PR#> --upload-test-report')

Looking into Travis as an alternative to Jenkins was motivated by:

* various issues with Jenkins, going from being unavailable from time to time due to all sorts of issues (usually things breaking with an update of either Jenkins or one of the plugins we're using) to being quite slow because the Java powering Jenkins was hogging all the CPU for some reason

* limited resources (4 workers), while the Jenkins setup is being used for testing a multitude of other projects as well

* hard to maintain test configurations, and even almost-duplicate test configurations that have grown/diverged historically

* limited availability (in time) of the tests reports for failing tests

* somewhat silly protective measures like having to approve the testing of pull requests for contributors who are not white-listed yet

I was seriously getting fed up with these problems/limitations, especially because they were impacting incoming contributions more and more.


A couple of weeks ago, I spend some time on making myself familiar with Travis and setting up test configurations, by defining a .travis.yml file in the develop branch of each of the GitHub repositories (cfr. [1-3]).

Although there were a couple of small hick-ups initially, Travis turned out to work out really well.

Not only were the test configurations now included in the repository itself (and thus also under version control), test results for pull requests were usually delivered a lot faster through Travis compared to Jenkins. In addition, we were consistently running the tests in more different configurations compared to the Jenkins setup, with very little effort...

Moreover, this enables others (you, for example) to trivially evaluate changes before opening a pull request, which is particularly useful for the EasyBuild framework.

It suffices to create an account on https://travis-ci.org, and enable testing for your forks of the EasyBuild repositories via the Travis profile page [4]. Through the settings tab, you can configure Travis to test both changes pushed to branches in your fork, and/or pull requests to your fork [5].

The Travis UI takes some getting used to, and certainly isn't perfect, but is a lot better than the somewhat outdated Jenkins UI (see for example [6]).


The intention was to use both Jenkins and Travis side-by-side for a while (more-or-less until after the next EasyBuild release, v2.8.0), but today another issue arose with an update of Jenkins that made me pull the plug (for the EasyBuild repositories), cfr. [7].

Just now, I've disabled the GitHub hooks & services related to our Jenkins setup, meaning that it will no longer be triggered to test pull requests (or merges). We will solely rely on Travis from now on for testing incoming contributions.


The switch to Travis should not affect contributors in a negative way; so far, I only see improvements.

A significant difference is probably that Travis doesn't go and dump comments for every test result (pass or fail) in pull requests. which implies no e-mails notifying you of the test result (some people will be quite happy with that part alone)... Travis does send notifications when you push a new branch to your own fork, however, and when the tests fail in a branch of your own fork (if testing of branches is enabled).

For now, I consider that a good thing, but I'm sure there's a way to re-enable (e-mail) push notifications if we really want them back. I suspect the biggest impact is going to be on the people reviewing incoming pull requests, since they may have to notify a contributor of failing tests...


I'm happy to answer any questions you may have on this matter.

If you notice anything strange or wrong with the Travis testing process, please inform us in one way or another (email, IRC, ...).


regards,

Kenneth


[1] https://github.com/hpcugent/easybuild-framework/pull/1733: initial .travis.yml for easybuild-framework [2] https://github.com/hpcugent/easybuild-easyblocks/pull/895, https://github.com/hpcugent/easybuild-easyblocks/pull/897 [3] https://github.com/hpcugent/easybuild-easyconfigs/pull/2942, https://github.com/hpcugent/easybuild-easyconfigs/pull/2944
[4] https://travis-ci.org/profile
[5] https://travis-ci.org/YOUR_GITHUB_LOGIN/easybuild-framework/settings
[6] https://travis-ci.org/hpcugent/easybuild-framework
[7] https://issues.jenkins-ci.org/browse/JENKINS-34762

Reply via email to