[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