Skip to content
  • Matthew Pickering's avatar
    ci: Generate jobs for all normal builds and use hadrian for all builds · 5ff690b8
    Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
    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.
    5ff690b8