summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2023-04-20 15:57:13 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-05-05 18:43:07 -0400
commite1df8511e45e9071aa5e488ac21c4ccd24d91837 (patch)
tree8f8a2b1fca6e07599ebeb68da9d93c4ea500d6cb
parent6e776ed33dfbdd288064001039235de6d2174d8a (diff)
downloadhaskell-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.yml33
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