diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2023-01-13 10:01:52 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-01-16 20:51:26 -0500 |
commit | eeea59bb3df6977ead66bf0b24976b03a6021f51 (patch) | |
tree | 99da1e78a6be2da002b64660978c99be32089434 /.gitlab/generate_jobs | |
parent | 28cb2ed00cf261720a8db907f6ceb04266924ab7 (diff) | |
download | haskell-eeea59bb3df6977ead66bf0b24976b03a6021f51.tar.gz |
Add scripts to generate ghcup metadata on nightly and release pipelines
1. A python script in .gitlab/rel_eng/mk-ghcup-metadata which generates
suitable metadata for consumption by GHCUp for the relevant
pipelines.
- The script generates the metadata just as the ghcup maintainers
want, without taking into account platform/library combinations. It
is updated manually when the mapping changes.
- The script downloads the bindists which ghcup wants to distribute,
calculates the hash and generates the yaml in the correct structure.
- The script is documented in the .gitlab/rel_eng/mk-ghcup-metadata/README.mk file
1a. The script requires us to understand the mapping from platform ->
job. To choose the preferred bindist for each platform the
.gitlab/gen_ci.hs script is modified to allow outputting a metadata
file which answers the question about which job produces the
bindist which we want to distribute to users for a specific
platform.
2. Pipelines to run on nightly and release jobs to generate metadata
- ghcup-metadata-nightly: Generates metadata which points directly to
artifacts in the nightly job.
- ghcup-metadata-release: Generates metadata suitable for inclusion
directly in ghcup by pointing to the downloads folder where the
bindist will be uploaded to.
2a. Trigger jobs which test the generated metadata in the downstream
`ghccup-ci` repo. See that repo for documentation about what is
tested and how but essentially we test in a variety of clean images
that ghcup can download and install the bindists we say exist in our
metadata.
Diffstat (limited to '.gitlab/generate_jobs')
-rwxr-xr-x | .gitlab/generate_jobs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/.gitlab/generate_jobs b/.gitlab/generate_jobs index 049157e8c3..0df674cceb 100755 --- a/.gitlab/generate_jobs +++ b/.gitlab/generate_jobs @@ -7,7 +7,7 @@ set -euo pipefail cd "$(dirname "${BASH_SOURCE[0]}")" tmp=$(mktemp) -cabal run gen_ci -- $tmp +cabal run gen_ci -- gitlab $tmp rm -f jobs.yaml echo "### THIS IS A GENERATED FILE, DO NOT MODIFY DIRECTLY" > jobs.yaml cat $tmp | jq | tee -a jobs.yaml |