[Git][ghc/ghc][wip/ghcup-ci] remove most of pipeline

Matthew Pickering (@mpickering) gitlab at gitlab.haskell.org
Thu Jan 12 08:41:40 UTC 2023



Matthew Pickering pushed to branch wip/ghcup-ci at Glasgow Haskell Compiler / GHC


Commits:
9c43411f by Matthew Pickering at 2023-01-12T08:41:24+00:00
remove most of pipeline

- - - - -


1 changed file:

- .gitlab-ci.yml


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -181,775 +181,798 @@ not-interruptible:
 ############################################################
 
 # These jobs are generated by running the ./.gitlab/generate_jobs script
-include: '.gitlab/jobs.yaml'
+#include: '.gitlab/jobs.yaml'
 
 ############################################################
 # tool linting
 ############################################################
 
-ghc-linters:
-  stage: tool-lint
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  extends: .lint-params
-  variables:
-    BUILD_FLAVOUR: default
-  script:
-    - .gitlab/ci.sh configure
-    - timeout 10m .gitlab/ci.sh run_hadrian test --test-root-dirs="testsuite/tests/linters"
-  dependencies: []
-  rules:
-    - if: $CI_MERGE_REQUEST_ID
-    - *drafts-can-fail-lint
-
-# Run mypy Python typechecker on linter scripts.
-lint-linters:
-  image: "registry.gitlab.haskell.org/ghc/ci-images/linters:$DOCKER_REV"
-  extends: .lint
-  script:
-    - mypy testsuite/tests/linters/regex-linters/*.py
-  dependencies: []
-
-# Check that .T files all parse by listing broken tests.
-lint-testsuite:
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
-  extends: .lint
-  script:
-    - make -Ctestsuite list_broken TEST_HC=$GHC
-  dependencies: []
-
-# Run mypy Python typechecker on testsuite driver
-typecheck-testsuite:
-  image: "registry.gitlab.haskell.org/ghc/ci-images/linters:$DOCKER_REV"
-  extends: .lint
-  script:
-    - mypy testsuite/driver/runtests.py
-  dependencies: []
-
-# We allow the submodule checker to fail when run on merge requests (to
-# accommodate, e.g., haddock changes not yet upstream) but not on `master` or
-# Marge jobs.
-.lint-submods:
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  extends: .lint-params
-  variables:
-    BUILD_FLAVOUR: default
-  script:
-    - .gitlab/ci.sh configure
-    - .gitlab/ci.sh run_hadrian stage0:exe:lint-submodule-refs
-    - git fetch "$CI_MERGE_REQUEST_PROJECT_URL" $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
-    - base="$(git merge-base FETCH_HEAD $CI_COMMIT_SHA)"
-    - "echo Linting submodule changes between $base..$CI_COMMIT_SHA"
-    - git submodule foreach git remote update
-    - _build/stageBoot/bin/lint-submodule-refs . $(git rev-list $base..$CI_COMMIT_SHA)
-  dependencies: []
-
-# We allow the submodule checker to fail when run on merge requests (to
-# accommodate, e.g., haddock changes not yet upstream) but not on `master` or
-# Marge jobs.
-lint-author:
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  extends: .lint-params
-  variables:
-    BUILD_FLAVOUR: default
-  script:
-    - git fetch "$CI_MERGE_REQUEST_PROJECT_URL" $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
-    - base="$(git merge-base FETCH_HEAD $CI_COMMIT_SHA)"
-    - "echo Linting authors between $base..$CI_COMMIT_SHA"
-    - .gitlab/ci.sh lint_author $base $CI_COMMIT_SHA
-  dependencies: []
-  rules:
-    - if: $CI_MERGE_REQUEST_ID
-    - *drafts-can-fail-lint
-
-lint-ci-config:
-  image: "nixos/nix:2.8.0"
-  extends: .lint
-  variables:
-    BUILD_FLAVOUR: default
-  before_script:
-    - mkdir -p ~/.cabal
-    - cp -Rf cabal-cache/* ~/.cabal || true
-  script:
-    - nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#cabal-install nixpkgs#ghc -c cabal update
-    - .gitlab/generate_jobs
-        # 1 if .gitlab/generate_jobs changed the output of the generated config
-    - nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#git -c git diff --exit-code
-  after_script:
-    - rm -Rf cabal-cache
-    - cp -Rf ~/.cabal cabal-cache
-  dependencies: []
-  cache:
-    key: lint-ci-$CACHE_REV
-    paths:
-      - cabal-cache
-
-lint-submods:
-  extends: .lint-submods
-  # Allow failure on merge requests since any necessary submodule patches may
-  # not be upstreamed yet.
-  rules:
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/'
-      allow_failure: false
-    # Don't run on nightly because the program needs a base commit to check.
-    - if: $NIGHTLY
-      when: never
-    - allow_failure: true
-
-lint-submods-branch:
-  extends: .lint-submods
-  variables:
-    BUILD_FLAVOUR: default
-  script:
-    - .gitlab/ci.sh configure
-    - .gitlab/ci.sh run_hadrian stage0:exe:lint-submodule-refs
-    - "echo Linting submodule changes between $CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA"
-    - git submodule foreach git remote update
-    - _build/stageBoot/bin/lint-submodule-refs . $(git rev-list $CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA)
-  rules:
-    - if: '$CI_COMMIT_BRANCH == "master"'
-    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
-    - *drafts-can-fail-lint
-
-############################################################
-# GHC source code linting
-############################################################
-
-.lint-params:
-  needs: []
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  extends: .lint
-  before_script:
-    - export PATH="/opt/toolchain/bin:$PATH"
-    # workaround for docker permissions
-    - sudo chown ghc:ghc -R .
-    - .gitlab/ci.sh setup
-  after_script:
-    - .gitlab/ci.sh save_cache
-    - cat ci-timings
-  variables:
-    GHC_FLAGS: -Werror
-  cache:
-    key: lint-$CACHE_REV
-    paths:
-      - cabal-cache
-
-hlint-ghc-and-base:
-  extends: .lint-params
-  image: "registry.gitlab.haskell.org/ghc/ci-images/linters:$DOCKER_REV"
-  variables:
-    BUILD_FLAVOUR: default
-  script:
-    - .gitlab/ci.sh setup
-    - .gitlab/ci.sh configure
-    - .gitlab/ci.sh run_hadrian lint:base
-    - .gitlab/ci.sh run_hadrian lint:compiler
-
-############################################################
-# GHC-in-GHCi (Hadrian)
-############################################################
-
-hadrian-ghc-in-ghci:
-  stage: quick-build
-  needs:
-    - job: lint-linters
-    - job: lint-submods
-      optional: true
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  before_script:
-    # workaround for docker permissions
-    - sudo chown ghc:ghc -R .
-  variables:
-    GHC_FLAGS: -Werror
-  tags:
-    - x86_64-linux
-  script:
-    - git clean -xdf && git submodule foreach git clean -xdf
-    - .gitlab/ci.sh setup
-    - .gitlab/ci.sh configure
-    # Load ghc-in-ghci then immediately exit and check the modules loaded
-    - echo ":q" | hadrian/ghci -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
-  after_script:
-    - .gitlab/ci.sh save_cache
-    - cat ci-timings
-  cache:
-    key: hadrian-ghci-$CACHE_REV
-    paths:
-      - cabal-cache
-
-############################################################
-# Hadrian Multi-Repl
-############################################################
-
-hadrian-multi:
-  stage: testing
-  needs:
-    - job: x86_64-linux-fedora33-release
-      optional: true
-    - job: nightly-x86_64-linux-fedora33-release
-      optional: true
-    - job: release-x86_64-linux-fedora33-release
-      optional: true
-  dependencies: null
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
-  before_script:
-    # workaround for docker permissions
-    - sudo chown ghc:ghc -R .
-  variables:
-    GHC_FLAGS: -Werror
-    CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot
-  tags:
-    - x86_64-linux
-  script:
-    - export BOOT_HC=$GHC
-    - root=$(pwd)/ghc
-    - ls
-    - |
-      mkdir tmp
-      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
-      pushd tmp/ghc-*/
-      ./configure --prefix=$root
-      make install
-      popd
-      rm -Rf tmp
-    - export HC=$root/bin/ghc
-    # This GHC means, use this GHC to configure with
-    - export GHC=$root/bin/ghc
-    - .gitlab/ci.sh setup
-    - .gitlab/ci.sh configure
-    # Now GHC means, use this GHC for hadrian
-    - export GHC=$BOOT_HC
-    # Load hadrian-multi then immediately exit and check the modules loaded
-    - echo ":q" | hadrian/ghci-multi -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
-  after_script:
-    - .gitlab/ci.sh save_cache
-  cache:
-    key: hadrian-ghci-$CACHE_REV
-    paths:
-      - cabal-cache
-
-############################################################
-# stack-hadrian-build
-############################################################
-
-# Verify that Hadrian builds with stack. Note that we don't actually perform a
-# build of GHC itself; we merely test that the Hadrian executable builds and
-# works (by invoking `hadrian --version`).
-stack-hadrian-build:
-  extends: hadrian-ghc-in-ghci
-  stage: quick-build
-  script:
-    - .gitlab/ci.sh setup
-    - .gitlab/ci.sh configure
-    - hadrian/build-stack --version
+        #ghc-linters:
+        #  stage: tool-lint
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  extends: .lint-params
+        #  variables:
+        #    BUILD_FLAVOUR: default
+        #  script:
+        #    - .gitlab/ci.sh configure
+        #    - timeout 10m .gitlab/ci.sh run_hadrian test --test-root-dirs="testsuite/tests/linters"
+        #  dependencies: []
+        #  rules:
+        #    - if: $CI_MERGE_REQUEST_ID
+        #    - *drafts-can-fail-lint
+        #
+        ## Run mypy Python typechecker on linter scripts.
+        #lint-linters:
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/linters:$DOCKER_REV"
+        #  extends: .lint
+        #  script:
+        #    - mypy testsuite/tests/linters/regex-linters/*.py
+        #  dependencies: []
+        #
+        ## Check that .T files all parse by listing broken tests.
+        #lint-testsuite:
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
+        #  extends: .lint
+        #  script:
+        #    - make -Ctestsuite list_broken TEST_HC=$GHC
+        #  dependencies: []
+        #
+        ## Run mypy Python typechecker on testsuite driver
+        #typecheck-testsuite:
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/linters:$DOCKER_REV"
+        #  extends: .lint
+        #  script:
+        #    - mypy testsuite/driver/runtests.py
+        #  dependencies: []
+        #
+        ## We allow the submodule checker to fail when run on merge requests (to
+        ## accommodate, e.g., haddock changes not yet upstream) but not on `master` or
+        ## Marge jobs.
+        #.lint-submods:
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  extends: .lint-params
+        #  variables:
+        #    BUILD_FLAVOUR: default
+        #  script:
+        #    - .gitlab/ci.sh configure
+        #    - .gitlab/ci.sh run_hadrian stage0:exe:lint-submodule-refs
+        #    - git fetch "$CI_MERGE_REQUEST_PROJECT_URL" $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
+        #    - base="$(git merge-base FETCH_HEAD $CI_COMMIT_SHA)"
+        #    - "echo Linting submodule changes between $base..$CI_COMMIT_SHA"
+        #    - git submodule foreach git remote update
+        #    - _build/stageBoot/bin/lint-submodule-refs . $(git rev-list $base..$CI_COMMIT_SHA)
+        #  dependencies: []
+        #
+        ## We allow the submodule checker to fail when run on merge requests (to
+        ## accommodate, e.g., haddock changes not yet upstream) but not on `master` or
+        ## Marge jobs.
+        #lint-author:
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  extends: .lint-params
+        #  variables:
+        #    BUILD_FLAVOUR: default
+        #  script:
+        #    - git fetch "$CI_MERGE_REQUEST_PROJECT_URL" $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
+        #    - base="$(git merge-base FETCH_HEAD $CI_COMMIT_SHA)"
+        #    - "echo Linting authors between $base..$CI_COMMIT_SHA"
+        #    - .gitlab/ci.sh lint_author $base $CI_COMMIT_SHA
+        #  dependencies: []
+        #  rules:
+        #    - if: $CI_MERGE_REQUEST_ID
+        #    - *drafts-can-fail-lint
+        #
+        #lint-ci-config:
+        #  image: "nixos/nix:2.8.0"
+        #  extends: .lint
+        #  variables:
+        #    BUILD_FLAVOUR: default
+        #  before_script:
+        #    - mkdir -p ~/.cabal
+        #    - cp -Rf cabal-cache/* ~/.cabal || true
+        #  script:
+        #    - nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#cabal-install nixpkgs#ghc -c cabal update
+        #    - .gitlab/generate_jobs
+        #        # 1 if .gitlab/generate_jobs changed the output of the generated config
+        #    - nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#git -c git diff --exit-code
+        #  after_script:
+        #    - rm -Rf cabal-cache
+        #    - cp -Rf ~/.cabal cabal-cache
+        #  dependencies: []
+        #  cache:
+        #    key: lint-ci-$CACHE_REV
+        #    paths:
+        #      - cabal-cache
+        #
+        #lint-submods:
+        #  extends: .lint-submods
+        #  # Allow failure on merge requests since any necessary submodule patches may
+        #  # not be upstreamed yet.
+        #  rules:
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/'
+        #      allow_failure: false
+        #    # Don't run on nightly because the program needs a base commit to check.
+        #    - if: $NIGHTLY
+        #      when: never
+        #    - allow_failure: true
+        #
+        #lint-submods-branch:
+        #  extends: .lint-submods
+        #  variables:
+        #    BUILD_FLAVOUR: default
+        #  script:
+        #    - .gitlab/ci.sh configure
+        #    - .gitlab/ci.sh run_hadrian stage0:exe:lint-submodule-refs
+        #    - "echo Linting submodule changes between $CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA"
+        #    - git submodule foreach git remote update
+        #    - _build/stageBoot/bin/lint-submodule-refs . $(git rev-list $CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA)
+        #  rules:
+        #    - if: '$CI_COMMIT_BRANCH == "master"'
+        #    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
+        #    - *drafts-can-fail-lint
+        #
+        #############################################################
+        ## GHC source code linting
+        #############################################################
+        #
+        #.lint-params:
+        #  needs: []
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  extends: .lint
+        #  before_script:
+        #    - export PATH="/opt/toolchain/bin:$PATH"
+        #    # workaround for docker permissions
+        #    - sudo chown ghc:ghc -R .
+        #    - .gitlab/ci.sh setup
+        #  after_script:
+        #    - .gitlab/ci.sh save_cache
+        #    - cat ci-timings
+        #  variables:
+        #    GHC_FLAGS: -Werror
+        #  cache:
+        #    key: lint-$CACHE_REV
+        #    paths:
+        #      - cabal-cache
+        #
+        #hlint-ghc-and-base:
+        #  extends: .lint-params
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/linters:$DOCKER_REV"
+        #  variables:
+        #    BUILD_FLAVOUR: default
+        #  script:
+        #    - .gitlab/ci.sh setup
+        #    - .gitlab/ci.sh configure
+        #    - .gitlab/ci.sh run_hadrian lint:base
+        #    - .gitlab/ci.sh run_hadrian lint:compiler
+        #
+        #############################################################
+        ## GHC-in-GHCi (Hadrian)
+        #############################################################
+        #
+        #hadrian-ghc-in-ghci:
+        #  stage: quick-build
+        #  needs:
+        #    - job: lint-linters
+        #    - job: lint-submods
+        #      optional: true
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  before_script:
+        #    # workaround for docker permissions
+        #    - sudo chown ghc:ghc -R .
+        #  variables:
+        #    GHC_FLAGS: -Werror
+        #  tags:
+        #    - x86_64-linux
+        #  script:
+        #    - git clean -xdf && git submodule foreach git clean -xdf
+        #    - .gitlab/ci.sh setup
+        #    - .gitlab/ci.sh configure
+        #    # Load ghc-in-ghci then immediately exit and check the modules loaded
+        #    - echo ":q" | hadrian/ghci -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
+        #  after_script:
+        #    - .gitlab/ci.sh save_cache
+        #    - cat ci-timings
+        #  cache:
+        #    key: hadrian-ghci-$CACHE_REV
+        #    paths:
+        #      - cabal-cache
+        #
+        #############################################################
+        ## Hadrian Multi-Repl
+        #############################################################
+        #
+        #hadrian-multi:
+        #  stage: testing
+        #  needs:
+        #    - job: x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: nightly-x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: release-x86_64-linux-fedora33-release
+        #      optional: true
+        #  dependencies: null
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
+        #  before_script:
+        #    # workaround for docker permissions
+        #    - sudo chown ghc:ghc -R .
+        #  variables:
+        #    GHC_FLAGS: -Werror
+        #    CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot
+        #  tags:
+        #    - x86_64-linux
+        #  script:
+        #    - export BOOT_HC=$GHC
+        #    - root=$(pwd)/ghc
+        #    - ls
+        #    - |
+        #      mkdir tmp
+        #      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
+        #      pushd tmp/ghc-*/
+        #      ./configure --prefix=$root
+        #      make install
+        #      popd
+        #      rm -Rf tmp
+        #    - export HC=$root/bin/ghc
+        #    # This GHC means, use this GHC to configure with
+        #    - export GHC=$root/bin/ghc
+        #    - .gitlab/ci.sh setup
+        #    - .gitlab/ci.sh configure
+        #    # Now GHC means, use this GHC for hadrian
+        #    - export GHC=$BOOT_HC
+        #    # Load hadrian-multi then immediately exit and check the modules loaded
+        #    - echo ":q" | hadrian/ghci-multi -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
+        #  after_script:
+        #    - .gitlab/ci.sh save_cache
+        #  cache:
+        #    key: hadrian-ghci-$CACHE_REV
+        #    paths:
+        #      - cabal-cache
+        #
+        #############################################################
+        ## stack-hadrian-build
+        #############################################################
+        #
+        ## Verify that Hadrian builds with stack. Note that we don't actually perform a
+        ## build of GHC itself; we merely test that the Hadrian executable builds and
+        ## works (by invoking `hadrian --version`).
+        #stack-hadrian-build:
+        #  extends: hadrian-ghc-in-ghci
+        #  stage: quick-build
+        #  script:
+        #    - .gitlab/ci.sh setup
+        #    - .gitlab/ci.sh configure
+        #    - hadrian/build-stack --version
+        #
+        #####################################
+        ## Testing reinstallable ghc codepath
+        #####################################
+        #
+        #test-cabal-reinstall-x86_64-linux-deb10:
+        #  extends: nightly-x86_64-linux-deb10-validate
+        #  stage: full-build
+        #  variables:
+        #    REINSTALL_GHC: "yes"
+        #    BUILD_FLAVOUR: validate
+        #    TEST_ENV: "x86_64-linux-deb10-cabal-install"
+        #  rules:
+        #    - if: $NIGHTLY
+        #
+        #########################################
+        ## Testing ABI is invariant across builds
+        #########################################
+        #
+        #abi-test-nightly:
+        #  stage: full-build
+        #  needs:
+        #    - job: nightly-x86_64-linux-fedora33-release-hackage
+        #    - job: nightly-x86_64-linux-fedora33-release
+        #  tags:
+        #    - x86_64-linux
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
+        #  dependencies: null
+        #  before_script:
+        #    - mkdir -p normal
+        #    - mkdir -p hackage
+        #    - tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C normal/
+        #    - tar -xf ghc-x86_64-linux-fedora33-release-hackage_docs.tar.xz -C hackage/
+        #  script:
+        #    - .gitlab/ci.sh compare_interfaces_of "normal/ghc-*" "hackage/ghc-*"
+        #  artifacts:
+        #    paths:
+        #      - out
+        #  rules:
+        #    - if: $NIGHTLY
+        #
+        #############################################################
+        ## Packaging
+        #############################################################
+        #
+        #doc-tarball:
+        #  stage: packaging
+        #  needs:
+        #    - job: x86_64-linux-deb10-numa-slow-validate
+        #      optional: true
+        #    - job: nightly-x86_64-linux-deb10-validate
+        #      optional: true
+        #    - job: release-x86_64-linux-deb10-release
+        #      optional: true
+        #
+        #    - job: x86_64-windows-validate
+        #      optional: true
+        #    - job: nightly-x86_64-windows-validate
+        #      optional: true
+        #    - job: release-x86_64-windows-release+no_split_sections
+        #      optional: true
+        #
+        #  tags:
+        #    - x86_64-linux
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  dependencies: null
+        #  variables:
+        #    LINUX_BINDIST: "ghc-x86_64-linux-deb10.tar.xz"
+        #    WINDOWS_BINDIST: "ghc-x86_64-windows.tar.xz"
+        #  artifacts:
+        #    paths:
+        #      - haddock.html.tar.xz
+        #      - libraries.html.tar.xz
+        #      - users_guide.html.tar.xz
+        #      - index.html
+        #      - "*.pdf"
+        #  script:
+        #    - |
+        #      mv "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \
+        #        || mv "ghc-x86_64-linux-deb10-validate.tar.xz" "$LINUX_BINDIST" \
+        #        || mv "ghc-x86_64-linux-deb10-release.tar.xz" "$LINUX_BINDIST" \
+        #        || true
+        #      mv "ghc-x86_64-windows-validate.tar.xz" "$WINDOWS_BINDIST" \
+        #        || mv "ghc-x86_64-windows-release+no_split_sections.tar.xz" "$WINDOWS_BINDIST" \
+        #        || true
+        #      if [ ! -f "$LINUX_BINDIST" ]; then
+        #        echo "Error: $LINUX_BINDIST does not exist. Did the Debian 9 job fail?"
+        #        exit 1
+        #      fi
+        #      if [ ! -f "$WINDOWS_BINDIST" ]; then
+        #        echo "Error: $WINDOWS_BINDIST does not exist. Did the 64-bit Windows job fail?"
+        #        exit 1
+        #      fi
+        #    - rm -Rf docs
+        #    - bash -ex distrib/mkDocs/mkDocs $LINUX_BINDIST $WINDOWS_BINDIST
+        #    - ls -lh
+        #    - mv docs/*.tar.xz docs/index.html .
+        #
+        #hackage-doc-tarball:
+        #  stage: packaging
+        #  needs:
+        #    - job: x86_64-linux-fedora33-release-hackage
+        #      optional: true
+        #    - job: nightly-x86_64-linux-fedora33-release-hackage
+        #      optional: true
+        #    - job: release-x86_64-linux-fedora33-release-hackage
+        #      optional: true
+        #    - job: source-tarball
+        #  tags:
+        #    - x86_64-linux
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  dependencies: null
+        #  variables:
+        #    # Don't clone the git repo..
+        #    GIT_STRATEGY: none
+        #    # Don't attempt to boot a source tarball
+        #    NO_BOOT: "1"
+        #  artifacts:
+        #    paths:
+        #      - hackage_docs
+        #  before_script:
+        #    - tar -xf ghc-*[0-9]-src.tar.xz
+        #    - tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C ghc*/
+        #  script:
+        #    - cd ghc*/
+        #    - mv .gitlab/upload_ghc_libs.py .
+        #    - .gitlab/ci.sh setup
+        #    - .gitlab/ci.sh configure
+        #    - ./upload_ghc_libs.py prepare --bindist ghc*linux/
+        #    - mv .upload-libs/docs ../hackage_docs
+        #  rules:
+        #    - if: $NIGHTLY
+        #    - if: '$RELEASE_JOB == "yes"'
+        #
+        #source-tarball:
+        #  stage: full-build
+        #  tags:
+        #    - x86_64-linux
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  dependencies: []
+        #  artifacts:
+        #    paths:
+        #      - ghc-*.tar.xz
+        #  script:
+        #    - ./boot
+        #    - ./configure
+        #    - ./hadrian/build source-dist
+        #    - mv _build/source-dist/*.xz  .
+        #  rules:
+        #    - if: $NIGHTLY
+        #    - if: '$RELEASE_JOB == "yes"'
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
+        #
+        #generate-hadrian-bootstrap-sources:
+        #  stage: full-build
+        #  tags:
+        #    - x86_64-linux
+        #  image: "$DOCKER_IMAGE"
+        #  dependencies: []
+        #  parallel: *bootstrap_matrix
+        #  artifacts:
+        #    paths:
+        #      - hadrian-bootstrap-sources-*.tar.gz
+        #  script:
+        #    - bash -c "[ $($GHC --numeric-version) = $GHC_VERSION ] || { echo $GHC_VERSION is not the same as the version of $GHC && exit 1; }"
+        #    - python3 ./hadrian/bootstrap/bootstrap.py -w $GHC fetch -o hadrian-bootstrap-sources-$GHC_VERSION
+        #  rules:
+        #    - if: $NIGHTLY
+        #    - if: '$RELEASE_JOB == "yes"'
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
+        #
+        #
+        #package-hadrian-bootstrap-sources:
+        #  stage: full-build
+        #  tags:
+        #    - x86_64-linux
+        #  needs: ["generate-hadrian-bootstrap-sources"]
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+        #  artifacts:
+        #    paths:
+        #      - hadrian-bootstrap-sources-all.tar.gz
+        #  script:
+        #    - tar -czvf hadrian-bootstrap-sources-all.tar.gz hadrian-bootstrap-sources-*.tar.gz
+        #  rules:
+        #    - if: $NIGHTLY
+        #    - if: '$RELEASE_JOB == "yes"'
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
+        #
+        #test-bootstrap:
+        #  stage: full-build
+        #  needs: [generate-hadrian-bootstrap-sources, source-tarball]
+        #  tags:
+        #    - x86_64-linux
+        #  image: "$DOCKER_IMAGE"
+        #  parallel: *bootstrap_matrix
+        #  dependencies: null
+        #  script:
+        #    - mkdir test-bootstrap
+        #    - tar -xf ghc-*[0-9]-src.tar.xz -C test-bootstrap
+        #    - tar -xf ghc-*-testsuite.tar.xz -C test-bootstrap
+        #    - cp hadrian-bootstrap-sources-$GHC_VERSION.tar.gz test-bootstrap/ghc-*
+        #    - pushd test-bootstrap/ghc-*
+        #    - python3 ./hadrian/bootstrap/bootstrap.py -w $GHC --bootstrap-sources hadrian-bootstrap-sources-$GHC_VERSION.tar.gz
+        #    - export HADRIAN_PATH="$PWD/_build/bin/hadrian"
+        #    - .gitlab/ci.sh setup
+        #    # Bootstrapping should not depend on HAPPY or ALEX so set them to false
+        #    # so the build fails if they are invoked.
+        #    - export HAPPY=/bin/false; export ALEX=/bin/false
+        #    - .gitlab/ci.sh configure
+        #    - .gitlab/ci.sh build_hadrian
+        #    - .gitlab/ci.sh test_hadrian
+        #    - popd
+        #    - rm -Rf test-bootstrap
+        #  variables:
+        #    # Don't record performance benchmarks
+        #    TEST_ENV: ""
+        #    BIN_DIST_NAME: "ghc-x86_64-deb10-linux"
+        #    BUILD_FLAVOUR: "validate"
+        #    NO_BOOT: "1"
+        #  rules:
+        #    - if: $NIGHTLY
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
+        #    - if: '$RELEASE_JOB == "yes"'
+        #      when: always
+        #      variables:
+        #        BUILD_FLAVOUR: "release"
+        #
+        #
+        #############################################################
+        ## Testing via head.hackage
+        #############################################################
+        #
+        ## Triggering jobs in the ghc/head.hackage project requires that we have a job
+        ## token for that repository. Furthermore the head.hackage CI job must have
+        ## access to an unprivileged access token with the ability to query the ghc/ghc
+        ## project such that it can find the job ID of the fedora33 job for the current
+        ## pipeline.
+        ##
+        ## hackage-lint: Can be triggered on any MR, normal validate pipeline or nightly build.
+        ##               Runs head.hackage with -dlint and a slow-validate bindist
+        ##
+        ## hackage-label-lint: Trigged on MRs with "user-facing" label, runs the slow-validate
+        ##                     head.hackage build with -dlint.
+        ##
+        ## nightly-hackage-lint: Runs automatically on nightly pipelines with slow-validate + dlint config.
+        ##
+        ## nightly-hackage-perf: Runs automaticaly on nightly pipelines with release build and eventlogging enabled.
+        ##
+        ## release-hackage-lint: Runs automatically on release pipelines with -dlint on a release bindist.
+        #
+        #.hackage:
+        #  stage: testing
+        #  variables:
+        #    UPSTREAM_PROJECT_PATH: "$CI_PROJECT_PATH"
+        #    UPSTREAM_PROJECT_ID: "$CI_PROJECT_ID"
+        #    UPSTREAM_PIPELINE_ID: "$CI_PIPELINE_ID"
+        #    RELEASE_JOB: "$RELEASE_JOB"
+        #  trigger:
+        #    project: "ghc/head.hackage"
+        #    branch: "upstream-testing"
+        #    strategy: "depend"
+        #
+        #hackage-lint:
+        #  needs:
+        #    - job: x86_64-linux-deb10-numa-slow-validate
+        #      optional: true
+        #      artifacts: false
+        #    - job: nightly-x86_64-linux-deb10-numa-slow-validate
+        #      optional: true
+        #      artifacts: false
+        #  extends: .hackage
+        #  variables:
+        #    SLOW_VALIDATE: 1
+        #    EXTRA_HC_OPTS: "-dlint"
+        #  # No for release jobs because there isn't a slow-valdate bindist. There is an
+        #  # automatic pipeline for release bindists (see release-hackage-lint)
+        #  rules:
+        #    - if: '$RELEASE_JOB != "yes"'
+        #  when: manual
+        #
+        #hackage-label-lint:
+        #  needs:
+        #    - job: x86_64-linux-deb10-numa-slow-validate
+        #      optional: true
+        #      artifacts: false
+        #  extends: .hackage
+        #  variables:
+        #    SLOW_VALIDATE: 1
+        #    EXTRA_HC_OPTS: "-dlint"
+        #  rules:
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/'
+        #
+        ## The head.hackage job is split into two jobs because enabling `-dlint`
+        ## affects the total allocation numbers for the simplifier portion significantly.
+        #nightly-hackage-lint:
+        #  needs:
+        #    - job: nightly-x86_64-linux-deb10-numa-slow-validate
+        #      optional: true
+        #      artifacts: false
+        #  rules:
+        #    - if: $NIGHTLY
+        #      variables:
+        #        NIGHTLY: "$NIGHTLY"
+        #  extends: .hackage
+        #  variables:
+        #    SLOW_VALIDATE: 1
+        #    EXTRA_HC_OPTS: "-dlint"
+        #
+        #nightly-hackage-perf:
+        #  needs:
+        #    - job: nightly-x86_64-linux-fedora33-release
+        #      optional: true
+        #      artifacts: false
+        #  rules:
+        #    - if: $NIGHTLY
+        #      variables:
+        #        NIGHTLY: "$NIGHTLY"
+        #  extends: .hackage
+        #  variables:
+        #    # Generate logs for nightly builds which include timing information.
+        #    EXTRA_HC_OPTS: "-ddump-timings"
+        #    # Ask head.hackage to generate eventlogs
+        #    EVENTLOGGING: 1
+        #
+        #release-hackage-lint:
+        #  needs:
+        #    - job: release-x86_64-linux-fedora33-release
+        #      optional: true
+        #      artifacts: false
+        #  rules:
+        #    - if: '$RELEASE_JOB == "yes"'
+        #  extends: .hackage
+        #  variables:
+        #    # No slow-validate bindist on release pipeline
+        #    EXTRA_HC_OPTS: "-dlint"
+        #
+        #############################################################
+        ## Nofib testing
+        ## (Disabled: See #21859)
+        #############################################################
+        #
+        #perf-nofib:
+        #  # Dependencies used by perf-nofib can't be built when some compiler changes
+        #  # aren't (yet) supported by head.hackage.
+        #  # Hence we allow this job to fail.
+        #  allow_failure: true
+        #  stage: testing
+        #  needs:
+        #    - job: x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: nightly-x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: release-x86_64-linux-fedora33-release
+        #      optional: true
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
+        #  rules:
+        #    - when: never
+        #    - if: $CI_MERGE_REQUEST_ID
+        #    - if: '$CI_COMMIT_BRANCH == "master"'
+        #    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
+        #    - if: '$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/'
+        #  tags:
+        #    - x86_64-linux
+        #  before_script:
+        #    - cd nofib
+        #    - "cabal update --index=$HACKAGE_INDEX_STATE --project-file=cabal.project.head-hackage"
+        #  script:
+        #    - root=$(pwd)/ghc
+        #    - |
+        #      mkdir tmp
+        #      tar -xf ../ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
+        #      pushd tmp/ghc-*/
+        #      ./configure --prefix=$root
+        #      make install
+        #      popd
+        #      rm -Rf tmp
+        #    - export PATH=$root/bin:$PATH
+        #    - cabal install -w "$root/bin/ghc" --lib regex-compat unboxed-ref parallel random-1.2.1 --allow-newer --package-env local.env --project-file=cabal.project.head-hackage
+        #    - export GHC_ENVIRONMENT="$(pwd)/local.env"
+        #    - "make HC=$root/bin/ghc BOOT_HC=$root/bin/ghc boot mode=fast -j$CPUS"
+        #    - "make HC=$root/bin/ghc BOOT_HC=$root/bin/ghc EXTRA_RUNTEST_OPTS='-cachegrind +RTS -V0 -RTS' NoFibRuns=1 mode=fast -j$CPUS 2>&1 | tee nofib.log"
+        #  artifacts:
+        #    expire_in: 12 week
+        #    when: always
+        #    paths:
+        #      - nofib/nofib.log
+        #
+        #############################################################
+        ## Ad-hoc performance testing
+        #############################################################
+        #
+        #perf:
+        #  stage: testing
+        #  needs:
+        #    - job: x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: nightly-x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: release-x86_64-linux-fedora33-release
+        #      optional: true
+        #  dependencies: null
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
+        #  rules:
+        #    - if: $CI_MERGE_REQUEST_ID
+        #    - if: '$CI_COMMIT_BRANCH == "master"'
+        #    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
+        #  tags:
+        #    - x86_64-linux-perf
+        #  script:
+        #    - root=$(pwd)/ghc
+        #    - |
+        #      mkdir tmp
+        #      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
+        #      pushd tmp/ghc-*/
+        #      ./configure --prefix=$root
+        #      make install
+        #      popd
+        #      rm -Rf tmp
+        #    - export BOOT_HC=$(which ghc)
+        #    - export HC=$root/bin/ghc
+        #    - .gitlab/ci.sh perf_test
+        #  artifacts:
+        #    expire_in: 2 year
+        #    when: always
+        #    paths:
+        #      - out
+        #  rules:
+        #    - if: '$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/'
+        #
+        #############################################################
+        ## ABI testing
+        #############################################################
+        #
+        #abi-test:
+        #  stage: testing
+        #  needs:
+        #    - job: x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: nightly-x86_64-linux-fedora33-release
+        #      optional: true
+        #    - job: release-x86_64-linux-fedora33-release
+        #      optional: true
+        #  dependencies: null
+        #  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
+        #  rules:
+        #    - if: $CI_MERGE_REQUEST_ID
+        #    - if: '$CI_COMMIT_BRANCH == "master"'
+        #    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
+        #  tags:
+        #    - x86_64-linux
+        #  script:
+        #    - root=$(pwd)/ghc
+        #    - |
+        #      mkdir tmp
+        #      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
+        #      pushd tmp/ghc-*/
+        #      ./configure --prefix=$root
+        #      make install
+        #      popd
+        #      rm -Rf tmp
+        #    - export BOOT_HC=$(which ghc)
+        #    - export HC=$root/bin/ghc
+        #    - .gitlab/ci.sh abi_test
+        #  artifacts:
+        #    paths:
+        #      - out
+        #  rules:
+        #    - if: '$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/'
+        #
+        #
+        #############################################################
+        ## Documentation deployment via GitLab Pages
+        #############################################################
+        #
+        #pages:
+        #  stage: deploy
+        #  needs: [doc-tarball]
+        #  dependencies: null
+        #  image: ghcci/x86_64-linux-deb9:0.2
+        #  # See #18973
+        #  allow_failure: true
+        #  tags:
+        #    - x86_64-linux
+        #  script:
+        #    - mkdir -p public/doc
+        #    # haddock docs are not in the hadrian produce doc tarballs at the moment
+        #    # - tar -xf haddock.html.tar.xz -C public/doc
+        #    - tar -xf libraries.html.tar.xz -C public/doc
+        #    - tar -xf users_guide.html.tar.xz -C public/doc
+        #    - |
+        #      cat >public/index.html <<EOF
+        #      <!DOCTYPE HTML>
+        #      <meta charset="UTF-8">
+        #      <meta http-equiv="refresh" content="1; url=doc/">
+        #      EOF
+        #    - cp -f index.html public/doc
+        #  rules:
+        #    # N.B. only run this on ghc/ghc since the deployed pages are quite large
+        #    # and we only serve GitLab Pages for ghc/ghc.
+        #    - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "ghc"'
+        #    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*publish-docs.*/'
+        #
+        #  artifacts:
+        #    paths:
+        #      - public
 
-####################################
-# Testing reinstallable ghc codepath
-####################################
-
-test-cabal-reinstall-x86_64-linux-deb10:
-  extends: nightly-x86_64-linux-deb10-validate
-  stage: full-build
-  variables:
-    REINSTALL_GHC: "yes"
-    BUILD_FLAVOUR: validate
-    TEST_ENV: "x86_64-linux-deb10-cabal-install"
-  rules:
-    - if: $NIGHTLY
-
-########################################
-# Testing ABI is invariant across builds
-########################################
-
-abi-test-nightly:
-  stage: full-build
-  needs:
-    - job: nightly-x86_64-linux-fedora33-release-hackage
-    - job: nightly-x86_64-linux-fedora33-release
-  tags:
-    - x86_64-linux
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
-  dependencies: null
-  before_script:
-    - mkdir -p normal
-    - mkdir -p hackage
-    - tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C normal/
-    - tar -xf ghc-x86_64-linux-fedora33-release-hackage_docs.tar.xz -C hackage/
-  script:
-    - .gitlab/ci.sh compare_interfaces_of "normal/ghc-*" "hackage/ghc-*"
-  artifacts:
-    paths:
-      - out
-  rules:
-    - if: $NIGHTLY
-
-############################################################
-# Packaging
-############################################################
+#############################################################
+# Generation of GHCUp metadata
+#############################################################
 
-doc-tarball:
+project-version:
   stage: packaging
-  needs:
-    - job: x86_64-linux-deb10-numa-slow-validate
-      optional: true
-    - job: nightly-x86_64-linux-deb10-validate
-      optional: true
-    - job: release-x86_64-linux-deb10-release
-      optional: true
-
-    - job: x86_64-windows-validate
-      optional: true
-    - job: nightly-x86_64-windows-validate
-      optional: true
-    - job: release-x86_64-windows-release+no_split_sections
-      optional: true
-
-  tags:
-    - x86_64-linux
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
   dependencies: null
-  variables:
-    LINUX_BINDIST: "ghc-x86_64-linux-deb10.tar.xz"
-    WINDOWS_BINDIST: "ghc-x86_64-windows.tar.xz"
-  artifacts:
-    paths:
-      - haddock.html.tar.xz
-      - libraries.html.tar.xz
-      - users_guide.html.tar.xz
-      - index.html
-      - "*.pdf"
-  script:
-    - |
-      mv "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \
-        || mv "ghc-x86_64-linux-deb10-validate.tar.xz" "$LINUX_BINDIST" \
-        || mv "ghc-x86_64-linux-deb10-release.tar.xz" "$LINUX_BINDIST" \
-        || true
-      mv "ghc-x86_64-windows-validate.tar.xz" "$WINDOWS_BINDIST" \
-        || mv "ghc-x86_64-windows-release+no_split_sections.tar.xz" "$WINDOWS_BINDIST" \
-        || true
-      if [ ! -f "$LINUX_BINDIST" ]; then
-        echo "Error: $LINUX_BINDIST does not exist. Did the Debian 9 job fail?"
-        exit 1
-      fi
-      if [ ! -f "$WINDOWS_BINDIST" ]; then
-        echo "Error: $WINDOWS_BINDIST does not exist. Did the 64-bit Windows job fail?"
-        exit 1
-      fi
-    - rm -Rf docs
-    - bash -ex distrib/mkDocs/mkDocs $LINUX_BINDIST $WINDOWS_BINDIST
-    - ls -lh
-    - mv docs/*.tar.xz docs/index.html .
-
-hackage-doc-tarball:
-  stage: packaging
-  needs:
-    - job: x86_64-linux-fedora33-release-hackage
-      optional: true
-    - job: nightly-x86_64-linux-fedora33-release-hackage
-      optional: true
-    - job: release-x86_64-linux-fedora33-release-hackage
-      optional: true
-    - job: source-tarball
   tags:
     - x86_64-linux
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  dependencies: null
   variables:
-    # Don't clone the git repo..
-    GIT_STRATEGY: none
-    # Don't attempt to boot a source tarball
-    NO_BOOT: "1"
-  artifacts:
-    paths:
-      - hackage_docs
+    BUILD_FLAVOUR: default
   before_script:
-    - tar -xf ghc-*[0-9]-src.tar.xz
-    - tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C ghc*/
-  script:
-    - cd ghc*/
-    - mv .gitlab/upload_ghc_libs.py .
-    - .gitlab/ci.sh setup
+    # Calculate the project version
     - .gitlab/ci.sh configure
-    - ./upload_ghc_libs.py prepare --bindist ghc*linux/
-    - mv .upload-libs/docs ../hackage_docs
-  rules:
-    - if: $NIGHTLY
-    - if: '$RELEASE_JOB == "yes"'
-
-source-tarball:
-  stage: full-build
-  tags:
-    - x86_64-linux
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  dependencies: []
-  artifacts:
-    paths:
-      - ghc-*.tar.xz
-  script:
-    - ./boot
-    - ./configure
-    - ./hadrian/build source-dist
-    - mv _build/source-dist/*.xz  .
-  rules:
-    - if: $NIGHTLY
-    - if: '$RELEASE_JOB == "yes"'
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
+    - cp hadrian/bindist/Makefile .
+    - touch config.mk
+    - make show VALUE=ProjectVersion > version.sh
 
-generate-hadrian-bootstrap-sources:
-  stage: full-build
-  tags:
-    - x86_64-linux
-  image: "$DOCKER_IMAGE"
   dependencies: []
-  parallel: *bootstrap_matrix
   artifacts:
     paths:
-      - hadrian-bootstrap-sources-*.tar.gz
-  script:
-    - bash -c "[ $($GHC --numeric-version) = $GHC_VERSION ] || { echo $GHC_VERSION is not the same as the version of $GHC && exit 1; }"
-    - python3 ./hadrian/bootstrap/bootstrap.py -w $GHC fetch -o hadrian-bootstrap-sources-$GHC_VERSION
-  rules:
-    - if: $NIGHTLY
-    - if: '$RELEASE_JOB == "yes"'
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
-
-
-package-hadrian-bootstrap-sources:
-  stage: full-build
-  tags:
-    - x86_64-linux
-  needs: ["generate-hadrian-bootstrap-sources"]
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
-  artifacts:
-    paths:
-      - hadrian-bootstrap-sources-all.tar.gz
-  script:
-    - tar -czvf hadrian-bootstrap-sources-all.tar.gz hadrian-bootstrap-sources-*.tar.gz
-  rules:
-    - if: $NIGHTLY
-    - if: '$RELEASE_JOB == "yes"'
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
-
-test-bootstrap:
-  stage: full-build
-  needs: [generate-hadrian-bootstrap-sources, source-tarball]
-  tags:
-    - x86_64-linux
-  image: "$DOCKER_IMAGE"
-  parallel: *bootstrap_matrix
-  dependencies: null
-  script:
-    - mkdir test-bootstrap
-    - tar -xf ghc-*[0-9]-src.tar.xz -C test-bootstrap
-    - tar -xf ghc-*-testsuite.tar.xz -C test-bootstrap
-    - cp hadrian-bootstrap-sources-$GHC_VERSION.tar.gz test-bootstrap/ghc-*
-    - pushd test-bootstrap/ghc-*
-    - python3 ./hadrian/bootstrap/bootstrap.py -w $GHC --bootstrap-sources hadrian-bootstrap-sources-$GHC_VERSION.tar.gz
-    - export HADRIAN_PATH="$PWD/_build/bin/hadrian"
-    - .gitlab/ci.sh setup
-    # Bootstrapping should not depend on HAPPY or ALEX so set them to false
-    # so the build fails if they are invoked.
-    - export HAPPY=/bin/false; export ALEX=/bin/false
-    - .gitlab/ci.sh configure
-    - .gitlab/ci.sh build_hadrian
-    - .gitlab/ci.sh test_hadrian
-    - popd
-    - rm -Rf test-bootstrap
-  variables:
-    # Don't record performance benchmarks
-    TEST_ENV: ""
-    BIN_DIST_NAME: "ghc-x86_64-deb10-linux"
-    BUILD_FLAVOUR: "validate"
-    NO_BOOT: "1"
-  rules:
-    - if: $NIGHTLY
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-bootstrap.*/'
-    - if: '$RELEASE_JOB == "yes"'
-      when: always
-      variables:
-        BUILD_FLAVOUR: "release"
-
-
-############################################################
-# Testing via head.hackage
-############################################################
-
-# Triggering jobs in the ghc/head.hackage project requires that we have a job
-# token for that repository. Furthermore the head.hackage CI job must have
-# access to an unprivileged access token with the ability to query the ghc/ghc
-# project such that it can find the job ID of the fedora33 job for the current
-# pipeline.
-#
-# hackage-lint: Can be triggered on any MR, normal validate pipeline or nightly build.
-#               Runs head.hackage with -dlint and a slow-validate bindist
-#
-# hackage-label-lint: Trigged on MRs with "user-facing" label, runs the slow-validate
-#                     head.hackage build with -dlint.
-#
-# nightly-hackage-lint: Runs automatically on nightly pipelines with slow-validate + dlint config.
-#
-# nightly-hackage-perf: Runs automaticaly on nightly pipelines with release build and eventlogging enabled.
-#
-# release-hackage-lint: Runs automatically on release pipelines with -dlint on a release bindist.
-
-.hackage:
-  stage: testing
-  variables:
-    UPSTREAM_PROJECT_PATH: "$CI_PROJECT_PATH"
-    UPSTREAM_PROJECT_ID: "$CI_PROJECT_ID"
-    UPSTREAM_PIPELINE_ID: "$CI_PIPELINE_ID"
-    RELEASE_JOB: "$RELEASE_JOB"
-  trigger:
-    project: "ghc/head.hackage"
-    branch: "upstream-testing"
-    strategy: "depend"
-
-hackage-lint:
-  needs:
-    - job: x86_64-linux-deb10-numa-slow-validate
-      optional: true
-      artifacts: false
-    - job: nightly-x86_64-linux-deb10-numa-slow-validate
-      optional: true
-      artifacts: false
-  extends: .hackage
-  variables:
-    SLOW_VALIDATE: 1
-    EXTRA_HC_OPTS: "-dlint"
-  # No for release jobs because there isn't a slow-valdate bindist. There is an
-  # automatic pipeline for release bindists (see release-hackage-lint)
-  rules:
-    - if: '$RELEASE_JOB != "yes"'
-  when: manual
-
-hackage-label-lint:
-  needs:
-    - job: x86_64-linux-deb10-numa-slow-validate
-      optional: true
-      artifacts: false
-  extends: .hackage
-  variables:
-    SLOW_VALIDATE: 1
-    EXTRA_HC_OPTS: "-dlint"
-  rules:
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/'
-
-# The head.hackage job is split into two jobs because enabling `-dlint`
-# affects the total allocation numbers for the simplifier portion significantly.
-nightly-hackage-lint:
-  needs:
-    - job: nightly-x86_64-linux-deb10-numa-slow-validate
-      optional: true
-      artifacts: false
-  rules:
-    - if: $NIGHTLY
-      variables:
-        NIGHTLY: "$NIGHTLY"
-  extends: .hackage
-  variables:
-    SLOW_VALIDATE: 1
-    EXTRA_HC_OPTS: "-dlint"
-
-nightly-hackage-perf:
-  needs:
-    - job: nightly-x86_64-linux-fedora33-release
-      optional: true
-      artifacts: false
-  rules:
-    - if: $NIGHTLY
-      variables:
-        NIGHTLY: "$NIGHTLY"
-  extends: .hackage
-  variables:
-    # Generate logs for nightly builds which include timing information.
-    EXTRA_HC_OPTS: "-ddump-timings"
-    # Ask head.hackage to generate eventlogs
-    EVENTLOGGING: 1
-
-release-hackage-lint:
-  needs:
-    - job: release-x86_64-linux-fedora33-release
-      optional: true
-      artifacts: false
+      - version.sh
   rules:
+    - if: '$NIGHTLY'
     - if: '$RELEASE_JOB == "yes"'
-  extends: .hackage
-  variables:
-    # No slow-validate bindist on release pipeline
-    EXTRA_HC_OPTS: "-dlint"
-
-############################################################
-# Nofib testing
-# (Disabled: See #21859)
-############################################################
-
-perf-nofib:
-  # Dependencies used by perf-nofib can't be built when some compiler changes
-  # aren't (yet) supported by head.hackage.
-  # Hence we allow this job to fail.
-  allow_failure: true
-  stage: testing
-  needs:
-    - job: x86_64-linux-fedora33-release
-      optional: true
-    - job: nightly-x86_64-linux-fedora33-release
-      optional: true
-    - job: release-x86_64-linux-fedora33-release
-      optional: true
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
-  rules:
-    - when: never
-    - if: $CI_MERGE_REQUEST_ID
-    - if: '$CI_COMMIT_BRANCH == "master"'
-    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
-    - if: '$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/'
-  tags:
-    - x86_64-linux
-  before_script:
-    - cd nofib
-    - "cabal update --index=$HACKAGE_INDEX_STATE --project-file=cabal.project.head-hackage"
-  script:
-    - root=$(pwd)/ghc
-    - |
-      mkdir tmp
-      tar -xf ../ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
-      pushd tmp/ghc-*/
-      ./configure --prefix=$root
-      make install
-      popd
-      rm -Rf tmp
-    - export PATH=$root/bin:$PATH
-    - cabal install -w "$root/bin/ghc" --lib regex-compat unboxed-ref parallel random-1.2.1 --allow-newer --package-env local.env --project-file=cabal.project.head-hackage
-    - export GHC_ENVIRONMENT="$(pwd)/local.env"
-    - "make HC=$root/bin/ghc BOOT_HC=$root/bin/ghc boot mode=fast -j$CPUS"
-    - "make HC=$root/bin/ghc BOOT_HC=$root/bin/ghc EXTRA_RUNTEST_OPTS='-cachegrind +RTS -V0 -RTS' NoFibRuns=1 mode=fast -j$CPUS 2>&1 | tee nofib.log"
-  artifacts:
-    expire_in: 12 week
-    when: always
-    paths:
-      - nofib/nofib.log
-
-############################################################
-# Ad-hoc performance testing
-############################################################
-
-perf:
-  stage: testing
-  needs:
-    - job: x86_64-linux-fedora33-release
-      optional: true
-    - job: nightly-x86_64-linux-fedora33-release
-      optional: true
-    - job: release-x86_64-linux-fedora33-release
-      optional: true
-  dependencies: null
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
-  rules:
-    - if: $CI_MERGE_REQUEST_ID
-    - if: '$CI_COMMIT_BRANCH == "master"'
-    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
-  tags:
-    - x86_64-linux-perf
-  script:
-    - root=$(pwd)/ghc
-    - |
-      mkdir tmp
-      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
-      pushd tmp/ghc-*/
-      ./configure --prefix=$root
-      make install
-      popd
-      rm -Rf tmp
-    - export BOOT_HC=$(which ghc)
-    - export HC=$root/bin/ghc
-    - .gitlab/ci.sh perf_test
-  artifacts:
-    expire_in: 2 year
-    when: always
-    paths:
-      - out
-  rules:
-    - if: '$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/'
-
-############################################################
-# ABI testing
-############################################################
-
-abi-test:
-  stage: testing
-  needs:
-    - job: x86_64-linux-fedora33-release
-      optional: true
-    - job: nightly-x86_64-linux-fedora33-release
-      optional: true
-    - job: release-x86_64-linux-fedora33-release
-      optional: true
-  dependencies: null
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
-  rules:
-    - if: $CI_MERGE_REQUEST_ID
-    - if: '$CI_COMMIT_BRANCH == "master"'
-    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
-  tags:
-    - x86_64-linux
-  script:
-    - root=$(pwd)/ghc
-    - |
-      mkdir tmp
-      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
-      pushd tmp/ghc-*/
-      ./configure --prefix=$root
-      make install
-      popd
-      rm -Rf tmp
-    - export BOOT_HC=$(which ghc)
-    - export HC=$root/bin/ghc
-    - .gitlab/ci.sh abi_test
-  artifacts:
-    paths:
-      - out
-  rules:
-    - if: '$CI_MERGE_REQUEST_LABELS !~ /.*fast-ci.*/'
-
-
-############################################################
-# Documentation deployment via GitLab Pages
-############################################################
-
-pages:
-  stage: deploy
-  needs: [doc-tarball]
-  dependencies: null
-  image: ghcci/x86_64-linux-deb9:0.2
-  # See #18973
-  allow_failure: true
-  tags:
-    - x86_64-linux
-  script:
-    - mkdir -p public/doc
-    # haddock docs are not in the hadrian produce doc tarballs at the moment
-    # - tar -xf haddock.html.tar.xz -C public/doc
-    - tar -xf libraries.html.tar.xz -C public/doc
-    - tar -xf users_guide.html.tar.xz -C public/doc
-    - |
-      cat >public/index.html <<EOF
-      <!DOCTYPE HTML>
-      <meta charset="UTF-8">
-      <meta http-equiv="refresh" content="1; url=doc/">
-      EOF
-    - cp -f index.html public/doc
-  rules:
-    # N.B. only run this on ghc/ghc since the deployed pages are quite large
-    # and we only serve GitLab Pages for ghc/ghc.
-    - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "ghc"'
-    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*publish-docs.*/'
-
-  artifacts:
-    paths:
-      - public
-
-#############################################################
-# Generation of GHCUp metadata
-#############################################################
 
 .ghcup-metadata:
   stage: deploy
@@ -978,31 +1001,31 @@ pages:
 
 ghcup-metadata-nightly:
   extends: .ghcup-metadata
-  needs:
-    - job: nightly-x86_64-linux-fedora33-release
-      artifacts: false
-    - job: nightly-x86_64-linux-centos7-validate
-      artifacts: false
-    - job: nightly-x86_64-darwin-validate
-      artifacts: false
-    - job: nightly-aarch64-darwin-validate
-      artifacts: false
-    - job: nightly-x86_64-windows-validate
-      artifacts: false
-    - job: nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static
-      artifacts: false
-    - job: nightly-x86_64-linux-deb9-validate
-      artifacts: false
-    - job: nightly-i386-linux-deb9-validate
-      artifacts: false
-    - job: nightly-x86_64-linux-deb10-validate
-      artifacts: false
-    - job: nightly-aarch64-linux-deb10-validate
-      artifacts: false
-    - job: nightly-x86_64-linux-deb11-validate
-      artifacts: false
-    - job: source-tarball
-      artifacts: false
+    #  needs:
+    #    - job: nightly-x86_64-linux-fedora33-release
+    #      artifacts: false
+    #    - job: nightly-x86_64-linux-centos7-validate
+    #      artifacts: false
+    #    - job: nightly-x86_64-darwin-validate
+    #      artifacts: false
+    #    - job: nightly-aarch64-darwin-validate
+    #      artifacts: false
+    #    - job: nightly-x86_64-windows-validate
+    #      artifacts: false
+    #    - job: nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static
+    #      artifacts: false
+    #    - job: nightly-x86_64-linux-deb9-validate
+    #      artifacts: false
+    #    - job: nightly-i386-linux-deb9-validate
+    #      artifacts: false
+    #    - job: nightly-x86_64-linux-deb10-validate
+    #      artifacts: false
+    #    - job: nightly-aarch64-linux-deb10-validate
+    #      artifacts: false
+    #    - job: nightly-x86_64-linux-deb11-validate
+    #      artifacts: false
+    #    - job: source-tarball
+    #      artifacts: false
   script:
     - .gitlab/mk_ghcup_metadata.py --metadata ghcup-0.0.7.yaml --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
   rules:
@@ -1052,62 +1075,3 @@ ghcup-metadata-testing-release:
   when: manual
 
 
-.x86_64-linux-ubuntu20_04-cross_wasm32-wasi-release:
-  stage: full-build
-  rules:
-    - when: always
-  tags:
-    - x86_64-linux
-  image: registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV
-  before_script:
-    - sudo chown ghc:ghc -R .
-  variables:
-    BIN_DIST_NAME: ghc-x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_$BIGNUM_BACKEND-release
-    BUILD_FLAVOUR: perf
-    CONFIGURE_ARGS: --with-intree-gmp --with-system-libffi
-    XZ_OPT: "-9"
-    CONF_CC_OPTS_STAGE2: -Wno-int-conversion -Wno-strict-prototypes -mnontrapping-fptoint -msign-ext -mbulk-memory -mmutable-globals -mreference-types
-    CONF_CXX_OPTS_STAGE2: -fno-exceptions -Wno-int-conversion -Wno-strict-prototypes -mnontrapping-fptoint -msign-ext -mbulk-memory -mmutable-globals -mreference-types
-    CONF_GCC_LINKER_OPTS_STAGE2: -Wl,--error-limit=0,--growable-table,--stack-first -Wno-unused-command-line-argument
-    CROSS_EMULATOR: wasmtime
-    CROSS_TARGET: wasm32-wasi
-    HADRIAN_ARGS: --docs=none
-    TEST_ENV: x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_$BIGNUM_BACKEND-release
-  script:
-    - |
-      pushd libraries/process
-      curl https://patch-diff.githubusercontent.com/raw/haskell/process/pull/240.diff | git apply
-      popd
-      pushd utils/hsc2hs
-      curl https://patch-diff.githubusercontent.com/raw/haskell/hsc2hs/pull/68.diff | git apply
-      popd
-
-      pushd "$(mktemp -d)"
-      curl -L https://gitlab.haskell.org/ghc/ghc-wasm-meta/-/archive/master/ghc-wasm-meta-master.tar.gz | tar xz --strip-components=1
-      PREFIX=/tmp/.ghc-wasm SKIP_GHC=1 ./setup.sh
-      source /tmp/.ghc-wasm/env
-      popd
-
-      .gitlab/ci.sh setup
-      .gitlab/ci.sh configure
-      .gitlab/ci.sh build_hadrian
-      .gitlab/ci.sh test_hadrian
-
-  after_script:
-    - cat ci-timings
-
-  artifacts:
-    expire_in: 1 year
-    paths:
-      - ghc-x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_$BIGNUM_BACKEND-release.tar.xz
-    when: always
-
-x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_gmp-release:
-  extends: .x86_64-linux-ubuntu20_04-cross_wasm32-wasi-release
-  variables:
-    BIGNUM_BACKEND: gmp
-
-x86_64-linux-ubuntu20_04-cross_wasm32-wasi-int_native-release:
-  extends: .x86_64-linux-ubuntu20_04-cross_wasm32-wasi-release
-  variables:
-    BIGNUM_BACKEND: native



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/9c43411fbc0ea5db5dbe695d5025be3b4f7c7053

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/9c43411fbc0ea5db5dbe695d5025be3b4f7c7053
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20230112/ffb95b8c/attachment-0001.html>


More information about the ghc-commits mailing list