summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2021-04-22 10:14:33 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2021-05-04 08:56:28 -0400
commit270db6316f33167c39cba2669494771fc1b3d67c (patch)
tree59d0390826f02d432fc9cb801c1050c9320ab808
parenteb3ae87ff46760eb28904cf934f883df97ee5beb (diff)
downloadhaskell-wip/angerman/fix-darwin-perf.tar.gz
[ci] darwin uses hadrianwip/angerman/fix-darwin-perf
Make is bad, and really slow, and we should just stop using it outright, or kill hadrian. Let's rather go for hadrian all the way and phase out make.
-rw-r--r--.gitlab-ci.yml67
1 files changed, 22 insertions, 45 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a5e3c46d22..0c287fd6d2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -509,7 +509,7 @@ release-x86_64-freebsd:
#################################
validate-x86_64-darwin:
- extends: .validate
+ extends: .validate-hadrian
stage: full-build
tags:
- x86_64-darwin-m1
@@ -536,7 +536,9 @@ validate-x86_64-darwin:
LANG: "en_US.UTF-8"
# WARNING: this is overridden in the shell.nix, see shell.nix!
CONFIGURE_ARGS: "--with-intree-gmp"
- TEST_ENV: "x86_64-darwin"
+ HADRIAN_ARGS: "--docs=no-sphinx"
+ TEST_ENV: "x86_64-darwin-hadrian"
+ BIN_DIST_NAME: "ghc-amd64-apple-darwin"
BUILD_FLAVOUR: "validate"
# Due to #19025
IGNORE_PERF_FAILURES: "all"
@@ -556,9 +558,9 @@ validate-x86_64-darwin:
--pure \
--keep GHC_VERSION --keep CABAL_INSTALL_VERSION --keep BUILD_FLAVOUR \
--keep BIN_DIST_PREP_TAR_COMP --keep CPUS --keep PROJECT_DIR \
- --keep CI_PROJECT_DIR --keep MAKE_ARGS \
- --keep LANG --keep CONFIGURE_ARGS \
- --keep MACOSX_DEPLOYMENT_TARGET --keep ac_cv_func_clock_gettime \
+ --keep CI_PROJECT_DIR --keep MAKE_ARGS --keep HADRIAN_ARGS \
+ --keep LANG --keep CONFIGURE_ARGS --keep TEST_ENV --keep BIN_DIST_NAME \
+ --keep MACOSX_DEPLOYMENT_TARGET --keep ac_cv_func_clock_gettime --keep HACKAGE_INDEX_STATE \
--run "$1" 2>&1
}
# fix up config.sub in libraries for the time.
@@ -571,18 +573,20 @@ validate-x86_64-darwin:
TIME_SETUP_DELTA=$(expr $TIME_SETUP - $TIME_START)
echo "Setup took $TIME_SETUP_DELTA seconds"
+ runInNixShell "cabal update --index=$HACKAGE_INDEX_STATE" 2>&1
+
runInNixShell ".gitlab/ci.sh configure" 2>&1
TIME_CONFIGURE=$(date +%s)
TIME_CONFIGURE_DELTA=$(expr $TIME_CONFIGURE - $TIME_SETUP)
echo "Configure took $TIME_CONFIGURE_DELTA seconds"
- runInNixShell ".gitlab/ci.sh build_make" 2>&1
+ runInNixShell ".gitlab/ci.sh build_hadrian" 2>&1
TIME_BUILD=$(date +%s)
TIME_BUILD_DELTA=$(expr $TIME_BUILD - $TIME_CONFIGURE)
echo "Build took $TIME_BUILD_DELTA seconds"
set +e
- runInNixShell ".gitlab/ci.sh test_make" 2>&1
+ runInNixShell ".gitlab/ci.sh test_hadrian" 2>&1
status=$?
set -e
@@ -607,7 +611,7 @@ validate-x86_64-darwin:
- toolchain
validate-aarch64-darwin:
- extends: .validate
+ extends: .validate-hadrian
stage: full-build
tags:
- aarch64-darwin-m1
@@ -629,6 +633,9 @@ validate-aarch64-darwin:
LANG: "en_US.UTF-8"
# WARNING: this is overridden in the shell.nix, see shell.nix!
CONFIGURE_ARGS: "--with-intree-gmp"
+ HADRIAN_ARGS: "--docs=no-sphinx"
+ BIN_DIST_NAME: "ghc-arm64-apple-darwin"
+ TEST_ENV: "aarch64-darwin-hadrian"
# I wish we could just use the nix #! logic, but we can't --run and -i bash
# behave very differently. -i bash does not pass any nix related env vars
@@ -642,8 +649,9 @@ validate-aarch64-darwin:
--pure \
--keep GHC_VERSION --keep CABAL_INSTALL_VERSION --keep BUILD_FLAVOUR \
--keep BIN_DIST_PREP_TAR_COMP --keep CPUS --keep PROJECT_DIR \
- --keep CI_PROJECT_DIR --keep MAKE_ARGS \
- --keep LANG --keep CONFIGURE_ARGS \
+ --keep CI_PROJECT_DIR --keep MAKE_ARGS --keep HADRIAN_ARGS \
+ --keep LANG --keep CONFIGURE_ARGS --keep TEST_ENV --keep BIN_DIST_NAME \
+ --keep HACKAGE_INDEX_STATE \
--run "$1" 2>&1
}
# fix up config.sub in libraries for the time.
@@ -656,18 +664,20 @@ validate-aarch64-darwin:
TIME_SETUP_DELTA=$(expr $TIME_SETUP - $TIME_START)
echo "Setup took $TIME_SETUP_DELTA seconds"
+ runInNixShell "cabal update --index=$HACKAGE_INDEX_STATE" 2>&1
+
runInNixShell ".gitlab/ci.sh configure" 2>&1
TIME_CONFIGURE=$(date +%s)
TIME_CONFIGURE_DELTA=$(expr $TIME_CONFIGURE - $TIME_SETUP)
echo "Setup took $TIME_CONFIGURE_DELTA seconds"
- runInNixShell ".gitlab/ci.sh build_make" 2>&1
+ runInNixShell ".gitlab/ci.sh build_hadrian" 2>&1
TIME_BUILD=$(date +%s)
TIME_BUILD_DELTA=$(expr $TIME_BUILD - $TIME_CONFIGURE)
echo "Build took $TIME_BUILD_DELTA seconds"
set +e
- runInNixShell ".gitlab/ci.sh test_make" 2>&1
+ runInNixShell ".gitlab/ci.sh test_hadrian" 2>&1
status=$?
set -e
TIME_TEST=$(date +%s)
@@ -690,39 +700,6 @@ validate-aarch64-darwin:
- cabal-cache
- toolchain
-# Disabled because of OS X CI capacity
-.validate-x86_64-darwin-hadrian:
- stage: full-build
- tags:
- - x86_64-darwin
- variables:
- GHC_VERSION: 8.10.4
- MACOSX_DEPLOYMENT_TARGET: "10.7"
- ac_cv_func_clock_gettime: "no"
- LANG: "en_US.UTF-8"
- CONFIGURE_ARGS: --with-intree-gmp
- TEST_ENV: "x86_64-darwin-hadrian"
- # Due to #19025
- IGNORE_PERF_FAILURES: "all"
- BIN_DIST_NAME: "ghc-x86_64-apple-darwin"
- BUILD_FLAVOUR: "validate"
- script:
- - .gitlab/ci.sh setup
- - .gitlab/ci.sh configure
- - .gitlab/ci.sh build_hadrian
- - .gitlab/ci.sh test_hadrian
- after_script:
- - cp -Rf $HOME/.cabal cabal-cache
- - .gitlab/ci.sh clean
- artifacts:
- when: always
- expire_in: 2 week
- reports:
- junit: junit.xml
- paths:
- - "$BIN_DIST_NAME.tar.xz"
- - junit.xml
-
.validate-linux:
extends: .validate
tags: