Skip to content
Snippets Groups Projects
Commit 270db631 authored by Moritz Angermann's avatar Moritz Angermann
Browse files

[ci] darwin uses hadrian

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.
parent eb3ae87f
Branches wip/angerman/fix-darwin-perf
No related tags found
No related merge requests found
......@@ -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:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment