summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-09-15 12:07:08 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-12-08 22:45:27 -0500
commit0a76d7d415cfa8facfa6d36101210f9e2e3ff0a6 (patch)
treeb58f457ee873c8b68da8f9038024cedbaa0bd345 /.gitlab-ci.yml
parent5d0a311f28b96e8be2e051ae8cb08cc654d0b63e (diff)
downloadhaskell-0a76d7d415cfa8facfa6d36101210f9e2e3ff0a6.tar.gz
ci: Add job for testing interface stability across builds
The idea is that both the bindists should product libraries with the same ABI and interface hash. So the job checks with ghc-pkg to make sure the computed ABI is the same. In future this job can be extended to check for the other facets of interface determinism. Fixes #22180
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml27
1 files changed, 27 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f6ef3e2c3f..d9c7ff1761 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -405,6 +405,33 @@ test-cabal-reinstall-x86_64-linux-deb10:
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
+ - if: '$RELEASE_JOB == "yes"'
+
############################################################
# Packaging
############################################################