Skip to content

ci: Generate jobs for all normal builds and use hadrian for all builds

Matthew Pickering requested to merge wip/gen-ci into master

This commit introduces a new script (.gitlab/gen_ci.hs) which generates a yaml file (.gitlab/jobs.yaml) which contains explicit descriptions for all the jobs we want to run. The jobs are separated into three categories:

  • validate - jobs run on every MR
  • nightly - jobs run once per day on the master branch
  • release - jobs for producing release artifacts

The generation script is a Haskell program which includes a DSL for specifying the different jobs. The hope is that it's easier to reason about the different jobs and how the variables are merged together rather than the unclear and opaque yaml syntax. The goal is to fix issues like #21190 once and for all..

The .gitlab/jobs.yaml can be generated by running the .gitlab/generate_jobs script. You have to do this manually.

Another consequence of this patch is that we use hadrian for all the validate, nightly and release builds on all platforms.

Merge request reports