Skip to content
Snippets Groups Projects
Commit 14ce264c authored by Ben Gamari's avatar Ben Gamari
Browse files

gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27

(cherry picked from commit 481e3174)
parent bee002a5
No related branches found
No related tags found
No related merge requests found
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment