summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-12-15 15:46:09 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-12-24 00:41:40 -0500
commitcbaebfb9d03d01f15eb6bbeee584a70fc09a15c4 (patch)
tree7cb3d921c75227667375283bdab5e0d72b57f16a
parent5eb357d905c63cfbe6287a99fbaa8d83289d1a22 (diff)
downloadhaskell-cbaebfb9d03d01f15eb6bbeee584a70fc09a15c4.tar.gz
head.hackage: Use slow-validate bindist for linting jobs
This enables the SLOW_VALIDATE env var for the linting head.hackage jobs, namely the jobs enabled manually, by the label or on the nightly build now use the deb10-numa-slow-validate bindist which has assertions enabled. See #22623 for a ticket which was found by using this configuration already! The head.hackage jobs triggered by upstream CI are now thusly: 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.
-rw-r--r--.gitlab-ci.yml68
1 files changed, 54 insertions, 14 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b88d86fc55..a010464711 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -679,19 +679,21 @@ test-bootstrap:
# 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
- needs:
- - job: x86_64-linux-fedora33-release
- optional: true
- artifacts: false
- - job: nightly-x86_64-linux-fedora33-release
- optional: true
- artifacts: false
- - job: release-x86_64-linux-fedora33-release
- optional: true
- artifacts: false
variables:
UPSTREAM_PROJECT_PATH: "$CI_PROJECT_PATH"
UPSTREAM_PROJECT_ID: "$CI_PROJECT_ID"
@@ -703,30 +705,56 @@ test-bootstrap:
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:
- EXTRA_HC_OPTS: "-dcore-lint"
+ 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:
- EXTRA_HC_OPTS: "-dcore-lint"
+ 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 `-dcore-lint`
+# 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:
- EXTRA_HC_OPTS: "-dcore-lint"
+ 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:
@@ -738,6 +766,18 @@ nightly-hackage-perf:
# 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)