Shopify / yjit-metrics

"Tasks for benchmarking, building and collecting stats for YJIT"
MIT License
14 stars 9 forks source link

Shared libraries for Jenkinsfile #208

Closed noahgibbs closed 1 year ago

noahgibbs commented 1 year ago

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.

noahgibbs commented 1 year ago

Instead of doing this I'm just pulling more and more into Ruby, which turns out to work better.