This page should be used to collect ideas to shape Kieker's delivery pipeline
Current Situation (for the Kieker core)
- Jenkins used with the following use cases
- Regular build of commits
runs
./gradlew.sh jenkinsBuild --stacktrace
- Nightly release creation
- job: kieker.uni-kiel.de/jenkins/job/kieker-nightly-release/
runs
./gradlew.sh jenkinsNightlyBuild chmod +x kieker-examples/OverheadEvaluationMicrobenchmark/executeRemoteMicroBenchmark.sh kieker-examples/OverheadEvaluationMicrobenchmark/executeRemoteMicroBenchmark.sh
- Release creation
- job 1: http://kieker.uni-kiel.de/jenkins/job/kieker-RC/
runs
./gradlew.sh jenkinsBuild --stacktrace
- job 2: http://kieker.uni-kiel.de/jenkins/job/kieker-RC-release/
runs
./gradlew.sh jenkinsNightlyBuild
- job 1: http://kieker.uni-kiel.de/jenkins/job/kieker-RC/
- Regular build of commits
Target Scenario
- Pipeline template not only for the Kieker core but also for other projects in the "Kieker orbit"
- No artifact is being rebuild. In each stage after the build stage, the build artifacts from the build stage are used.
Stages
- Build
- Compiles, creates the release artifacts, runs the (fast) unit tests, maybe some smoke tests + static code analysis
- Integration Test
- Runs the more expensive integration tests
- User Acceptance Test
Pipelines
Pull Request Check
- Goal: Makes sure that a pull request can be merged without conflict, can be compiled, passes the unit tests + static code analysis check and (more? we probably want to exclude the benchmarking here)
- Trigger: Pull request
- Executed stages: build