From 270db6316f33167c39cba2669494771fc1b3d67c Mon Sep 17 00:00:00 2001 From: Moritz Angermann Date: Thu, 22 Apr 2021 10:14:33 +0800 Subject: [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. --- .gitlab-ci.yml | 67 +++++++++++++++++++--------------------------------------- 1 file 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: -- cgit v1.2.1