We are currently using two different CI systems.
Hereby Apache Jenkins clearly is responsible for running the full testsuite with all integration-tests. Also only jobs on Apache Jenkins are allowed to publish SNAPSHOT versions of the Maven artifacts to Apaches Nexus.
Travis integrates perfectly into GitHub. We are using this to auto-check any pull-requests coming in.
Structure of the Jenkins Pipeline build
We are using the Jenkins
multi-branch pipeline plugin to automatically setup build for branches based upon the build definition in the
Jenkinsfile in the root of the project.
In general it decides between building of the
master branch and all others.
master the build not only builds the project itself and runs all tests, it also runs the
sonarqube analysis, deploys the artifacts built as well as generates and deploys the website.
The general structure of the build is as follows: