Continuous Integration
We are currently using Apache’s Jenkins
as single CI system.
-
Apache’s Jenkins at: https://ci-builds.apache.org/job/PLC4X/
However we might add Travis for automatically building and testing Pull-Requests in the near future.
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
at: https://repository.apache.org.
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 builds the develop
branch and all branches starting with the prefix feature/
.
However when building the develop
branch some additional steps are performed.
When building develop
the build not only builds the project itself and runs all tests, it also runs the sonarcloud
analysis, deploys the artifacts built to the Apache Nexus
as well as generates and deploys the website.
The general structure of the build is as follows: