This is the generator for GHC's GitLab CI infrastructure. In particular, this generates two outputs:
-
.gitlab/jobs.yaml
, which is a YAML (or, strictly speaking, JSON) file which defines the bulk of the validation, nightly, and release jobs of GHC's CI. This is committed to the GHC repository and must be updated whenevergen_ci.hs
is modified. -
.gitlab/jobs-metadata.json
, which is a mapping between platforms and produced binary distribution names used when producingghcup
metadata for nightly pipeline artifacts (see the.ghcup-metadata
job in/.gitlab-ci.yaml
).
The jobs are defined in gen_ci.hs
. After modifying this you can run
nix run .gitlab/generate-ci#generate-jobs
from the top of the GHC repository to update the generated configuration.
One can run update-ci
without Nix as follows (assuming one has jq
,
cabal-install
, and GHC installed):
$ cabal build generate-ci
$ PATH="$(dirname $(cabal list-bin generate-ci)):$PATH"
$ ./generate-jobs