diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5b0d9b4e9d6595bc2256a0c1706dbb1258cf6df8..a328d5d1de17b79fa7e8cc29b620033427e599e4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -202,7 +202,15 @@ lint-release-changelogs: - mv _build/bindist/ghc*.tar.xz ghc.tar.xz - export TOP=$(pwd) - cd _build/bindist/ghc-*/ && ./configure --prefix=$TOP/_build/install && make install && cd ../../../ - - hadrian/build.cabal.sh --flavour=$FLAVOUR -j`mk/detect-cpu-count.sh` --docs=no-sphinx test --summary-junit=./junit.xml --test-compiler=$TOP/_build/install/bin/ghc + - | + # Prepare to push git notes. + METRICS_FILE=$CI_PROJECT_DIR/performance-metrics.tsv + git config user.email "ben+ghc-ci@smart-cactus.org" + git config user.name "GHC GitLab CI" + - hadrian/build.cabal.sh --flavour=$FLAVOUR -j`mk/detect-cpu-count.sh` --docs=no-sphinx test --summary-junit=./junit.xml --test-compiler=$TOP/_build/install/bin/ghc || (METRICS_FILE=$METRICS_FILE .gitlab/push-test-metrics.sh && false) + - | + # Push git notes. + METRICS_FILE=$METRICS_FILE .gitlab/push-test-metrics.sh cache: key: hadrian paths: @@ -239,7 +247,7 @@ validate-x86_64-linux-deb9-unreg-hadrian: stage: full-build variables: CONFIGURE_ARGS: --enable-unregisterised - TEST_ENV: "x86_64-linux-deb9-unreg" + TEST_ENV: "x86_64-linux-deb9-unreg-hadrian" hadrian-ghc-in-ghci: <<: *only-default @@ -790,7 +798,7 @@ nightly-i386-windows-hadrian: extends: .build-windows-hadrian variables: MSYSTEM: MINGW32 - TEST_ENV: "x86_64-windows-hadrian" + TEST_ENV: "i386-windows-hadrian" only: variables: - $NIGHTLY diff --git a/hadrian/src/Settings/Builders/RunTest.hs b/hadrian/src/Settings/Builders/RunTest.hs index 6e07d1407afbb8c88d48e898505bb28caaf7eb4e..96df86606e13d8d0c1bb82865cc17e3755c7e36c 100644 --- a/hadrian/src/Settings/Builders/RunTest.hs +++ b/hadrian/src/Settings/Builders/RunTest.hs @@ -75,6 +75,8 @@ runTestBuilderArgs = builder RunTest ? do (acceptPlatform, acceptOS) <- expr . liftIO $ (,) <$> (maybe False (=="YES") <$> lookupEnv "PLATFORM") <*> (maybe False (=="YES") <$> lookupEnv "OS") + (testEnv, testMetricsFile) <- expr . liftIO $ + (,) <$> lookupEnv "TEST_ENV" <*> lookupEnv "METRICS_FILE" threads <- shakeThreads <$> expr getShakeOptions os <- getTestSetting TestHostOS @@ -138,9 +140,15 @@ runTestBuilderArgs = builder RunTest ? do , arg "--config", arg $ "timeout_prog=" ++ show (top -/- timeoutProg) , arg "--config", arg $ "stats_files_dir=" ++ statsFilesDir , arg $ "--threads=" ++ show threads + , emitWhenSet testEnv $ \env -> arg ("--test-env=" ++ show env) + , emitWhenSet testMetricsFile $ \file -> mconcat + [ arg "--metrics-file", arg (show file) ] , getTestArgs -- User-provided arguments from command line. ] + where emitWhenSet Nothing _ = mempty + emitWhenSet (Just v) f = f v + -- | Command line arguments for running GHC's test script. getTestArgs :: Args getTestArgs = do