diff options
author | Ben Gamari <ben@smart-cactus.org> | 2023-01-25 15:16:53 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-03-08 15:02:31 -0500 |
commit | 581e58ac80f98a9f5292ad13a9a984c2f5a1de21 (patch) | |
tree | 9da7434205aef832945930d388e14f0bd89f1632 /.gitlab/gen_ci.hs | |
parent | f0cf384db038ff3b83770dbf11a89ecd20178899 (diff) | |
download | haskell-581e58ac80f98a9f5292ad13a9a984c2f5a1de21.tar.gz |
gitlab-ci: Add job bootstrapping with nonmoving GC
Diffstat (limited to '.gitlab/gen_ci.hs')
-rwxr-xr-x | .gitlab/gen_ci.hs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index bc7f12b38f..267a2e240c 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -147,6 +147,7 @@ data BuildConfig , tablesNextToCode :: Bool , threadSanitiser :: Bool , noSplitSections :: Bool + , validateNonmovingGc :: Bool } -- Extra arguments to pass to ./configure due to the BuildConfig @@ -165,11 +166,14 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts [Dwarf | withDwarf] ++ [FullyStatic | fullyStatic] ++ [ThreadSanitiser | threadSanitiser] ++ - [NoSplitSections | noSplitSections, buildFlavour == Release ] + [NoSplitSections | noSplitSections, buildFlavour == Release ] ++ + [BootNonmovingGc | validateNonmovingGc ] data Flavour = Flavour BaseFlavour [FlavourTrans] -data FlavourTrans = Llvm | Dwarf | FullyStatic | ThreadSanitiser | NoSplitSections +data FlavourTrans + = Llvm | Dwarf | FullyStatic | ThreadSanitiser | NoSplitSections + | BootNonmovingGc data BaseFlavour = Release | Validate | SlowValidate deriving Eq @@ -194,6 +198,7 @@ vanilla = BuildConfig , tablesNextToCode = True , threadSanitiser = False , noSplitSections = False + , validateNonmovingGc = False } splitSectionsBroken :: BuildConfig -> BuildConfig @@ -317,6 +322,7 @@ flavourString (Flavour base trans) = baseString base ++ concatMap (("+" ++) . fl flavourString FullyStatic = "fully_static" flavourString ThreadSanitiser = "thread_sanitizer" flavourString NoSplitSections = "no_split_sections" + flavourString BootNonmovingGc = "boot_nonmoving_gc" -- The path to the docker image (just for linux builders) dockerImage :: Arch -> Opsys -> Maybe String @@ -544,6 +550,7 @@ data Rule = FastCI -- ^ Run this job when the fast-ci label is set | Nightly -- ^ Only run this job in the nightly pipeline | LLVMBackend -- ^ Only run this job when the "LLVM backend" label is present | FreeBSDLabel -- ^ Only run this job when the "FreeBSD" label is set. + | NonmovingGc -- ^ Only run this job when the "non-moving GC" label is set. | Disable -- ^ Don't run this job. deriving (Bounded, Enum, Ord, Eq) @@ -564,6 +571,8 @@ ruleString On LLVMBackend = "$CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/" ruleString Off LLVMBackend = true ruleString On FreeBSDLabel = "$CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/" ruleString Off FreeBSDLabel = true +ruleString On NonmovingGc = "$CI_MERGE_REQUEST_LABELS =~ /.*non-moving GC.*/" +ruleString Off NonmovingGc = true ruleString On ReleaseOnly = "$RELEASE_JOB == \"yes\"" ruleString Off ReleaseOnly = "$RELEASE_JOB != \"yes\"" ruleString On Nightly = "$NIGHTLY" @@ -660,7 +669,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } jobDependencies = [] jobVariables = mconcat [ opsysVariables arch opsys - ,"TEST_ENV" =: testEnv arch opsys buildConfig + , "TEST_ENV" =: testEnv arch opsys buildConfig , "BIN_DIST_NAME" =: binDistName arch opsys buildConfig , "BUILD_FLAVOUR" =: flavourString jobFlavour , "BIGNUM_BACKEND" =: bignumString (bignumBackend buildConfig) @@ -674,6 +683,9 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } Emulator s -> "CROSS_EMULATOR" =: s NoEmulatorNeeded -> mempty , if withNuma buildConfig then "ENABLE_NUMA" =: "1" else mempty + , if validateNonmovingGc buildConfig + then "RUNTEST_ARGS" =: "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity" + else mempty ] jobArtifacts = Artifacts @@ -897,10 +909,12 @@ job_groups = , make_wasm_jobs wasm_build_config , disableValidate $ make_wasm_jobs wasm_build_config { bignumBackend = Native } , disableValidate $ make_wasm_jobs wasm_build_config { unregisterised = True } + , addValidateRule NonmovingGc (standardBuildsWithConfig Amd64 (Linux Debian11) vanilla {validateNonmovingGc = True}) ] where hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-base-url") + tsan_jobs = modifyJobs ( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions" @@ -943,6 +957,7 @@ platform_mapping = Map.map go $ where whitelist = [ "x86_64-linux-alpine3_12-int_native-validate+fully_static" , "x86_64-linux-deb10-validate" + , "x86_64-linux-deb11-validate" , "x86_64-linux-fedora33-release" , "x86_64-windows-validate" ] |