Right now, we're using copy-and-paste of chunks of the Jenkinsfile to have the full-benchmark-run file with all steps, and then single- or double-step builds that do things like reporting and data checkin.
Naturally, the smaller builds are nearly all a repetition of the larger build. Also, the "full rebuild" reporting is a near-duplicate of "daily build."
All of this can be fixed with Jenkinsfile shared libraries. References:
The shared-library steps should also track whether a step/stage fails, so that we can do Jenkins notification based on what stage of the pipeline we reached.
Right now, we're using copy-and-paste of chunks of the Jenkinsfile to have the full-benchmark-run file with all steps, and then single- or double-step builds that do things like reporting and data checkin.
Naturally, the smaller builds are nearly all a repetition of the larger build. Also, the "full rebuild" reporting is a near-duplicate of "daily build."
All of this can be fixed with Jenkinsfile shared libraries. References:
It would also be possible to invoke one build from another, and have the full-rebuild pipeline invoke the smaller pipelines (https://stackoverflow.com/questions/43337070/how-to-invoke-a-jenkins-pipeline-a-in-another-jenkins-pipeline-b), but I don't think we want to do that.
The shared-library steps should also track whether a step/stage fails, so that we can do Jenkins notification based on what stage of the pipeline we reached.