[petsc-dev] PETSc goes Jenkins

Karl Rupp rupp at iue.tuwien.ac.at
Thu Jul 19 20:35:25 CDT 2018


Hi all,

we now have a first step towards full continuous integration via Jenkins 
completed. Thus, every new pull request that is (re-)based on a commit 
in master not older than today will be automatically tested with a 
subset of common tests that are intended to expose the most frequent 
issues. This, in particular, includes configurations with 64 bit 
integers as well as complex arithmetic.

The integration of Jenkins into Bitbucket is smooth: You will notice on 
our demo pull request
 
https://bitbucket.org/petsc/petsc/pull-requests/1039/jenkinsfile-for-build-pipelines-tied-to/diff
that on the right it says "3 of 3 builds passed". If you click on the 
link, you will get further details on the individual builds and find 
further links to the test output stored on the Jenkins server.

Implications on our development workflow: Currently 'next' gets (ab)used 
for all kinds of portability tests. As a consequence, every buggy merge 
clogs the whole integration pipeline, making it hard to integrate other 
PRs. With the Jenkins server in place, all pull requests will receive a 
good share of portability testing *before* they reach next. This reduces 
the burden on next, (hopefully) leading to faster code integration.

Corollary: I strongly encourage all PETSc developers to use issue pull 
requests rather than merging to next directly (use your own judgment for 
exceptions!).

Please note that we are still fine-tuning various aspects of the Jenkins 
infrastructure (location of the Jenkins server, which test nodes to use, 
which configurations to test, etc.). Most of these things are changes 
under the hood, though. If something still bubbles up and causes the 
testing to choke, please be considerate with us ;-)

Finally, I'd like to explicitly thank Alp Dener for his help on getting 
Jenkins to run smoothly. Any credit should go to him.

Best regards,
Karli


More information about the petsc-dev mailing list