diff options
author | Ben Gamari <ben@smart-cactus.org> | 2020-04-03 19:01:36 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2020-06-20 21:31:42 -0400 |
commit | 14ce264c2014c49af4dfe66acbc332077a53eee7 (patch) | |
tree | fb1da61c6b245bfc7e48595ec25f813c3caf99f3 | |
parent | bee002a5ef4baab062239a234990cc5e7dc44864 (diff) | |
download | haskell-14ce264c2014c49af4dfe66acbc332077a53eee7.tar.gz |
gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27
(cherry picked from commit 481e31740672a37c5b3a8924bba7e15c4080bc2e)
-rw-r--r-- | .gitlab-ci.yml | 149 |
1 files changed, 86 insertions, 63 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5220275b75..bd721ecb0b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,11 +25,12 @@ stages: - deploy # push documentation .only-default: &only-default - only: - - master - - /ghc-[0-9]+\.[0-9]+/ - - merge_requests - - tags + rules: + - if: $CI_MERGE_REQUEST_ID + - if: $CI_COMMIT_TAG + - if: '$CI_COMMIT_BRANCH == "master"' + - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/' + - if: '$CI_PIPELINE_SOURCE == "web"' ############################################################ # Runner Tags @@ -42,6 +43,20 @@ stages: # x86_64-linux to ensure low-latency availability. # +.nightly: &nightly + rules: + - if: $NIGHTLY + +.release: &release + variables: + BUILD_FLAVOUR: "perf" + FLAVOUR: "perf" + artifacts: + when: always + expire_in: 1 year + rules: + - if: '$RELEASE == "yes"' + ############################################################ # Linting @@ -62,9 +77,8 @@ ghc-linters: dependencies: [] tags: - lint - only: - refs: - - merge_requests + rules: + - if: $CI_MERGE_REQUEST_ID # We allow the submodule checker to fail when run on merge requests (to # accomodate, e.g., haddock changes not yet upstream) but not on `master` or @@ -80,18 +94,16 @@ ghc-linters: lint-submods: extends: .lint-submods - only: - refs: - - master - - /ghc-[0-9]+\.[0-9]+/ - - wip/marge_bot_batch_merge_job + rules: + - if: '$CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/' + allow_failure: false + - allow_failure: true lint-submods-mr: extends: .lint-submods allow_failure: true - only: - refs: - - merge_requests + rules: + - if: $CI_MERGE_REQUEST_ID .lint-changelogs: stage: lint @@ -105,15 +117,13 @@ lint-submods-mr: lint-changelogs: extends: .lint-changelogs allow_failure: true - only: - refs: - - /ghc-[0-9]+\.[0-9]+/ + rules: + - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/' lint-release-changelogs: extends: .lint-changelogs - only: - refs: - - /ghc-[0-9]+\.[0-9]+\.[0-9]+-.*-release/ + rules: + - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/' ############################################################ @@ -281,14 +291,12 @@ validate-aarch64-linux-deb9: expire_in: 2 week nightly-aarch64-linux-deb9: + <<: *nightly extends: .build-aarch64-linux-deb9 artifacts: expire_in: 2 year variables: TEST_TYPE: slowtest - only: - variables: - - $NIGHTLY ################################# # i386-linux-deb9 @@ -311,15 +319,27 @@ validate-i386-linux-deb9: expire_in: 2 week nightly-i386-linux-deb9: + <<: *nightly extends: .build-i386-linux-deb9 variables: TEST_TYPE: slowtest artifacts: when: always expire_in: 2 week - only: - variables: - - $NIGHTLY + +################################# +# x86_64-linux-deb10 +################################# + +.build-x86_64-linux-deb10: + extends: .validate-linux + stage: full-build + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" + variables: + TEST_ENV: "x86_64-linux-deb10" + BIN_DIST_PREP_TAR_COMP: "./ghc-x86_64-deb10-linux.tar.xz" + cache: + key: linux-x86_64-deb10 ################################# # x86_64-linux-deb9 @@ -342,14 +362,12 @@ validate-x86_64-linux-deb9: expire_in: 2 week nightly-x86_64-linux-deb9: + <<: *nightly extends: .build-x86_64-linux-deb9 artifacts: expire_in: 2 year variables: TEST_TYPE: slowtest - only: - variables: - - $NIGHTLY # N.B. Has DEBUG assertions enabled in stage2 validate-x86_64-linux-deb9-debug: @@ -377,6 +395,7 @@ validate-x86_64-linux-deb9-integer-simple: BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-deb9-linux-integer-simple.tar.xz" nightly-x86_64-linux-deb9-integer-simple: + <<: *nightly extends: .build-x86_64-linux-deb9 stage: full-build variables: @@ -385,9 +404,6 @@ nightly-x86_64-linux-deb9-integer-simple: TEST_TYPE: slowtest artifacts: expire_in: 2 year - only: - variables: - - $NIGHTLY validate-x86_64-linux-deb9-unreg: extends: .build-x86_64-linux-deb9 @@ -413,11 +429,21 @@ release-x86_64-linux-deb9-dwarf: key: linux-x86_64-deb9 +release-x86_64-linux-deb10-dwarf: + <<: *release + extends: .build-x86_64-linux-deb10 + variables: + CONFIGURE_ARGS: "--enable-dwarf-unwind" + BUILD_FLAVOUR: dwarf + TEST_ENV: "x86_64-linux-deb10-dwarf" + BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-deb10-linux-dwarf.tar.xz" + ################################# # x86_64-linux-deb8 ################################# release-x86_64-linux-deb8: + <<: *release extends: .validate-linux stage: full-build image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb8:$DOCKER_REV" @@ -426,8 +452,6 @@ release-x86_64-linux-deb8: BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-deb8-linux.tar.xz" # Disable sphinx PDF output as our Debian image doesn't have the requisite packages BUILD_SPHINX_PDF: "NO" - only: - - tags cache: key: linux-x86_64-deb8 artifacts: @@ -439,6 +463,7 @@ release-x86_64-linux-deb8: ################################# release-x86_64-linux-centos7: + <<: *release extends: .validate-linux stage: full-build image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV" @@ -451,8 +476,6 @@ release-x86_64-linux-centos7: TEST_ENV: "x86_64-linux-centos7" BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-centos7-linux.tar.xz" allow_failure: true - only: - - tags cache: key: linux-x86_64-centos7 artifacts: @@ -463,7 +486,7 @@ release-x86_64-linux-centos7: # x86_64-linux-fedora27 ################################# -validate-x86_64-linux-fedora27: +.build-x86_64-linux-fedora27: extends: .validate-linux stage: full-build image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$DOCKER_REV" @@ -472,12 +495,28 @@ validate-x86_64-linux-fedora27: BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-fedora27-linux.tar.xz" cache: key: linux-x86_64-fedora27 + +validate-x86_64-linux-fedora27: + extends: .build-x86_64-linux-fedora27 artifacts: when: always # These are used for head.hackage jobs therefore we keep them around for # longer. expire_in: 8 week +release-x86_64-linux-fedora27: + <<: *release + extends: .build-x86_64-linux-fedora27 + +release-x86_64-linux-fedora27-dwarf: + <<: *release + extends: .build-x86_64-linux-fedora27 + variables: + CONFIGURE_ARGS: "--enable-dwarf-unwind" + BUILD_FLAVOUR: dwarf + TEST_ENV: "x86_64-linux-fedora27-dwarf" + BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-fedora27-linux-dwarf.tar.xz" + ############################################################ # Validation via Pipelines (Windows) ############################################################ @@ -546,12 +585,10 @@ validate-x86_64-windows-hadrian: key: "x86_64-windows-hadrian-$WINDOWS_TOOLCHAIN_VERSION" nightly-i386-windows-hadrian: + <<: *nightly extends: .build-windows-hadrian variables: MSYSTEM: MINGW32 - only: - variables: - - $NIGHTLY cache: key: "i386-windows-hadrian-$WINDOWS_TOOLCHAIN_VERSION" @@ -597,18 +634,16 @@ validate-x86_64-windows: # Normal Windows validate builds are profiled; that won't do for releases. release-x86_64-windows: + <<: *release extends: validate-x86_64-windows variables: MSYSTEM: MINGW64 BUILD_FLAVOUR: "perf" CONFIGURE_ARGS: "--target=x86_64-unknown-mingw32" - only: - - tags release-i386-windows: + <<: *release extends: .build-windows-make - only: - - tags variables: MSYSTEM: MINGW32 BUILD_FLAVOUR: "perf" @@ -619,10 +654,8 @@ release-i386-windows: key: "i386-windows-$WINDOWS_TOOLCHAIN_VERSION" nightly-i386-windows: + <<: *nightly extends: .build-windows-make - only: - variables: - - $NIGHTLY variables: MSYSTEM: MINGW32 CONFIGURE_ARGS: "--target=i386-unknown-mingw32" @@ -653,7 +686,6 @@ cleanup-windows: stage: cleanup tags: - x86_64-windows - when: always dependencies: [] before_script: - echo "Time to clean up" @@ -676,7 +708,6 @@ cleanup-darwin: stage: cleanup tags: - x86_64-darwin - when: always dependencies: [] before_script: - echo "Time to clean up" @@ -694,13 +725,12 @@ cleanup-darwin: ############################################################ source-tarball: + <<: *release stage: packaging tags: - x86_64-linux image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV" dependencies: [] - only: - - tags artifacts: paths: - ghc-*.tar.xz @@ -738,19 +768,12 @@ source-tarball: script: - bash .gitlab/start-head.hackage.sh -hackage: - extends: .hackage - when: manual - hackage-label: extends: .hackage - only: - variables: - - $CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/ + rules: + - if: '$CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/' nightly-hackage: + <<: *nightly extends: .hackage - only: - variables: - - $NIGHTLY |