summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlp Mestanogullari <alpmestan@gmail.com>2019-03-05 19:01:54 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-03-13 15:10:01 -0400
commitcb17c2da1774a2565946f43261140f2a8b328840 (patch)
treed926081a0669a84ee997d0efb9ba04ff4088060a
parent23fc615679072a6fa433460a92f597af2ae388b2 (diff)
downloadhaskell-cb17c2da1774a2565946f43261140f2a8b328840.tar.gz
Hadrian: build (and retrieve) binary distributions in CI
With all the recent fixes to the binary-dist rule in Hadrian, we can now run that rule in CI and keep the bindists around in gitlab as artifacts, just like we do for the make CI jobs. To get 'autoreconf' to work in the Windows CI, we have to run it through the shell interpreter, so this commit does that along the way.
-rw-r--r--.gitlab-ci.yml20
-rw-r--r--hadrian/src/Builder.hs2
2 files changed, 14 insertions, 8 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ae41dd0c75..483fd89d45 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -63,12 +63,16 @@ ghc-linters:
- if [[ -d ./cabal-cache ]]; then cp -R ./.cabal-cache ~/.cabal-cache; fi
- ./boot
- ./configure $CONFIGURE_ARGS
- - hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh`
- - hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --docs=no-sphinx docs
+ - hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --docs=no-sphinx binary-dist
+ - mv _build/bindist/ghc*.tar.xz ghc.tar.xz
cache:
key: hadrian
paths:
- cabal-cache
+ artifacts:
+ when: always
+ paths:
+ - ghc.tar.xz
validate-x86_64-linux-deb8-hadrian:
extends: .validate-hadrian
@@ -427,16 +431,18 @@ validate-x86_64-windows-hadrian:
set MSYSTEM=MINGW64
python boot
bash -c './configure --enable-tarballs-autodownload GHC=`pwd`/toolchain/bin/ghc HAPPY=`pwd`/toolchain/bin/happy ALEX=`pwd`/toolchain/bin/alex'
- - bash -c "PATH=`pwd`/toolchain/bin:$PATH hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --flavour=Quick"
- - bash -c "PATH=`pwd`/toolchain/bin:$PATH hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --flavour=Quick --docs=no-sphinx docs
- # FIXME: Bindist disabled due to #16073
- #- bash -c "PATH=`pwd`/toolchain/bin:$PATH hadrian/build.cabal.sh binary-dist"
+ - bash -c "PATH=`pwd`/toolchain/bin:$PATH hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --flavour=Quick --docs=no-sphinx binary-dist"
+ - mv _build/bindist/ghc*.tar.xz ghc.tar.xz
# FIXME: Testsuite disabled due to #16156.
- #- bash -c 'make V=0 test THREADS=`mk/detect-cpu-count.sh` JUNIT_FILE=../../junit.xml'
+ # - bash -c 'make V=0 test THREADS=`mk/detect-cpu-count.sh` JUNIT_FILE=../../junit.xml'
cache:
key: x86_64-windows
tags:
- x86_64-windows
+ artifacts:
+ when: always
+ paths:
+ - ghc.tar.xz
validate-x86_64-windows:
extends: .validate-windows
diff --git a/hadrian/src/Builder.hs b/hadrian/src/Builder.hs
index d855aa5bde..1cf2325116 100644
--- a/hadrian/src/Builder.hs
+++ b/hadrian/src/Builder.hs
@@ -238,7 +238,7 @@ instance H.Builder Builder where
Ar Unpack _ -> cmd echo [Cwd output] [path] buildArgs
- Autoreconf dir -> cmd echo [Cwd dir] [path] buildArgs
+ Autoreconf dir -> cmd echo [Cwd dir] ["sh", path] buildArgs
Configure dir -> do
-- Inject /bin/bash into `libtool`, instead of /bin/sh,
-- otherwise Windows breaks. TODO: Figure out why.