summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-09-23 12:13:25 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-12-08 22:45:27 -0500
commit5d0a311f28b96e8be2e051ae8cb08cc654d0b63e (patch)
treec94eb0eaa3fe7b8dff68a3845de144729f6c606e /.gitlab-ci.yml
parent216deefd377cf495f07f05a9b355e8d842ccb5b6 (diff)
downloadhaskell-5d0a311f28b96e8be2e051ae8cb08cc654d0b63e.tar.gz
ci: Add job to test interface file determinism guarantees
In this job we can run on every commit we add a test which builds the Cabal library twice and checks that the ABI hash and interface hash is stable across the two builds. * We run the test 20 times to try to weed out any race conditions due to `-j` * We run the builds in different temporary directories to try to weed out anything related to build directory affecting ABI or interface file hash. Fixes #22180
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml40
1 files changed, 40 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f19c78c561..f6ef3e2c3f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -753,6 +753,46 @@ perf:
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