diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index daa8e8a5c848a9a267fdf257cae93bc38f9c0d53..38e984a7c32e7cdca333686764caec507036bc78 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -233,6 +233,17 @@ lint-release-changelogs: tags: - x86_64-linux +# Verify that Hadrian builds with stack. Note that we don't actually perform a +# build of GHC itself; we merely test that the Hadrian executable builds and +# works (by invoking `hadrian --version`). +stack-hadrian-build: + extends: .validate-linux-hadrian + stage: build + script: + - .gitlab/ci.sh setup + - .gitlab/ci.sh configure + - hadrian/build-stack --version + validate-x86_64-linux-deb9-hadrian: extends: .validate-linux-hadrian needs: [hadrian-ghc-in-ghci] diff --git a/hadrian/build-stack b/hadrian/build-stack index 7a45042ebd73c1dd4d58383f8e35968379b1bce4..da069e3575381d7b802036d3a87f7a20307e9ad0 100755 --- a/hadrian/build-stack +++ b/hadrian/build-stack @@ -3,11 +3,13 @@ # Make sure that the script exits if Hadrian fails to build set -euo pipefail +STACK="${STACK:-stack}" + # Make sure Hadrian is up-to-date cd hadrian -stack build --no-library-profiling ${HADRIAN_NIX:+--nix} +$STACK build --no-library-profiling ${HADRIAN_NIX:+--nix} # Run Hadrian in the top-level GHC directory -stack exec hadrian -- \ +$STACK exec hadrian -- \ --directory ".." \ "$@" diff --git a/hadrian/build-stack.bat b/hadrian/build-stack.bat index 09bfd9561e9d220d364e47dd6e193b72669ec05d..4ed26a703a4c13fba6899aa344329fe7649567ef 100644 --- a/hadrian/build-stack.bat +++ b/hadrian/build-stack.bat @@ -3,5 +3,9 @@ setlocal rem Change the current directory to the one containing this script cd %~dp0 +if "%STACK%"=="" ( + set STACK=stack +) + rem Build and run Hadrian in GHC top directory forwarding additional user arguments -stack run hadrian --cwd=.. -- %* +%STACK% run hadrian --cwd=.. -- %*