[Git][ghc/ghc][wip/perf-ci] Add nightly job for running the testsuite with perf support

Hannes Siebenhandl (@fendor) gitlab at gitlab.haskell.org
Thu May 23 08:27:48 UTC 2024



Hannes Siebenhandl pushed to branch wip/perf-ci at Glasgow Haskell Compiler / GHC


Commits:
f773fb82 by Fendor at 2024-05-23T10:27:35+02:00
Add nightly job for running the testsuite with perf support

- - - - -


2 changed files:

- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml


Changes:

=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -265,6 +265,9 @@ tsan = vanilla { threadSanitiser = True }
 noTntc :: BuildConfig
 noTntc = vanilla { tablesNextToCode = False }
 
+perfTestsuite :: BuildConfig
+perfTestsuite = vanilla { testsuiteUsePerf = True }
+
 -----------------------------------------------------------------------------
 -- Platform specific variables
 -----------------------------------------------------------------------------
@@ -285,6 +288,9 @@ runnerTag _ _ = error "Invalid arch/opsys"
 tags :: Arch -> Opsys -> BuildConfig -> [String]
 tags arch opsys _bc = [runnerTag arch opsys] -- Tag for which runners we can use
 
+runnerPerfTag :: Arch -> Opsys -> String
+runnerPerfTag arch sys = runnerTag arch sys ++ "-perf"
+
 -- These names are used to find the docker image so they have to match what is
 -- in the docker registry.
 distroName :: LinuxDistro -> String
@@ -886,6 +892,12 @@ highCompression = addVariable "XZ_OPT" "-9"
 useHashUnitIds :: Job -> Job
 useHashUnitIds = addVariable "HADRIAN_ARGS" "--hash-unit-ids"
 
+addJobTags :: [String] -> Job -> Job
+addJobTags t j = j { jobTags = jobTags j ++ t}
+
+perfJob :: Arch -> Opsys -> Job -> Job
+perfJob arch opsys = addJobTags [ runnerPerfTag arch opsys ]
+
 -- | Mark the validate job to run in fast-ci mode
 -- This is default way, to enable all jobs you have to apply the `full-ci` label.
 fastCI :: JobGroup Job -> JobGroup Job
@@ -1025,6 +1037,7 @@ job_groups =
          make_wasm_jobs wasm_build_config {unregisterised = True}
      , onlyRule NonmovingGc (validateBuilds Amd64 (Linux Debian11) vanilla {validateNonmovingGc = True})
      , onlyRule IpeData (validateBuilds Amd64 (Linux Debian10) zstdIpe)
+     , perfTestsuiteJob Amd64 (Linux Debian12) perfTestsuite
      ]
 
   where
@@ -1037,6 +1050,9 @@ job_groups =
     -- (see Note [Object unloading]).
     fullyStaticBrokenTests = modifyJobs (addVariable "BROKEN_TESTS" "ghcilink002 linker_unload_native")
 
+    perfTestsuiteJob arch sys buildConfig =
+        modifyJobs (perfJob arch sys) $ disableValidate (validateBuilds arch sys buildConfig)
+
     hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
 
     tsan_jobs =


=====================================
.gitlab/jobs.yaml
=====================================
@@ -1945,14 +1945,15 @@
     ],
     "stage": "full-build",
     "tags": [
-      "x86_64-linux"
+      "x86_64-linux",
+      "x86_64-linux-perf"
     ],
     "variables": {
       "BIGNUM_BACKEND": "gmp",
       "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate",
       "BUILD_FLAVOUR": "validate",
       "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
-      "RUNTEST_ARGS": "",
+      "RUNTEST_ARGS": " --config perf_path=perf",
       "TEST_ENV": "x86_64-linux-deb12-validate",
       "XZ_OPT": "-9"
     }



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/f773fb823473ce0b3eb6154a6dbd254d918cd054

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/f773fb823473ce0b3eb6154a6dbd254d918cd054
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240523/5d475ad0/attachment-0001.html>


More information about the ghc-commits mailing list