diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2023-04-20 15:57:13 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-05-05 18:43:07 -0400 |
commit | e1df8511e45e9071aa5e488ac21c4ccd24d91837 (patch) | |
tree | 8f8a2b1fca6e07599ebeb68da9d93c4ea500d6cb | |
parent | 6e776ed33dfbdd288064001039235de6d2174d8a (diff) | |
download | haskell-e1df8511e45e9071aa5e488ac21c4ccd24d91837.tar.gz |
Incrementally update ghcup metadata in ghc/ghcup-metadata
This job paves the way for distributing nightly builds
* A new repo https://gitlab.haskell.org/ghc/ghcup-metadata stores the
metadata on the "updates" branch.
* Each night this metadata is downloaded and the nightly builds are
appended to the end of the metadata.
* The update job only runs on the scheduled nightly pipeline, not just
when NIGHTLY=1.
Things which are not done yet
* Modify the retention policy for nightly jobs
* Think about building release flavour compilers to distribute nightly.
Fixes #23334
-rw-r--r-- | .gitlab-ci.yml | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e34ad10e9a..8b655e0a0d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -999,7 +999,7 @@ project-version: - . ./version.sh # Download existing ghcup metadata - - nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#wget -c wget "https://raw.githubusercontent.com/haskell/ghcup-metadata/develop/ghcup-0.0.7.yaml" + - nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#wget -c wget "https://gitlab.haskell.org/ghc/ghcup-metadata/-/raw/updates/ghcup-0.0.7.yaml" - .gitlab/generate_job_metadata @@ -1048,6 +1048,37 @@ ghcup-metadata-nightly: rules: - if: $NIGHTLY +# Update the +ghcup-metadata-nightly-push: + stage: deploy + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV" + dependencies: null + tags: + - x86_64-linux + variables: + BUILD_FLAVOUR: default + GIT_SUBMODULE_STRATEGY: "none" + needs: + - job: ghcup-metadata-nightly + artifacts: true + script: + - git clone https://gitlab.haskell.org/ghc/ghcup-metadata.git + - cp metadata_test.yaml ghcup-metadata/ghcup-0.0.7.yaml + - cd ghcup-metadata + - git config user.email "ghc-ci@gitlab-haskell.org" + - git config user.name "GHC GitLab CI" + - git remote add gitlab_origin https://oauth2:$PROJECT_PUSH_TOKEN@gitlab.haskell.org/ghc/ghcup-metadata.git + - git add . + - git commit -m "Update metadata" + - git push gitlab_origin HEAD:updates -o ci.skip + rules: + - if: $NIGHTLY + # Only run the update on scheduled nightly pipelines, ie once a day + - if: $CI_PIPELINE_SOURCE == "schedule" + # And only update the metadata for master branch + - if: '$CI_COMMIT_BRANCH == "master"' + + ghcup-metadata-release: # No explicit needs for release pipeline as we assume we need everything and everything will pass. extends: .ghcup-metadata |