Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • .gitlab/generate-ci/gen_ci.hs
    ... ... @@ -12,6 +12,7 @@
    12 12
     {-# HLINT ignore "Use camelCase" #-}
    
    13 13
     {-# LANGUAGE DerivingStrategies #-}
    
    14 14
     {-# LANGUAGE NamedFieldPuns #-}
    
    15
    +{-# LANGUAGE TypeFamilies #-}
    
    15 16
     
    
    16 17
     import Data.Aeson as A
    
    17 18
     import qualified Data.Map as Map
    
    ... ... @@ -174,6 +175,7 @@ data BuildConfig
    174 175
                     , textWithSIMDUTF :: Bool
    
    175 176
                     , testsuiteUsePerf :: Bool
    
    176 177
                     , testsuiteWays :: [String]
    
    178
    +                , extendName :: Maybe String
    
    177 179
                     }
    
    178 180
     
    
    179 181
     -- Extra arguments to pass to ./configure due to the BuildConfig
    
    ... ... @@ -244,6 +246,7 @@ vanilla = BuildConfig
    244 246
       , textWithSIMDUTF = False
    
    245 247
       , testsuiteUsePerf = False
    
    246 248
       , testsuiteWays = []
    
    249
    +  , extendName = Nothing
    
    247 250
       }
    
    248 251
     
    
    249 252
     splitSectionsBroken :: BuildConfig -> BuildConfig
    
    ... ... @@ -842,13 +845,22 @@ job :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
    842 845
     job arch opsys buildConfig =
    
    843 846
       MkBuildAndTestJob
    
    844 847
         { buildJob = NamedJob { name = jobName, jobInfo = Job { jobScript = jobBuildScript, jobStage = "full-build", jobNeeds =  [("hadrian-ghc-in-ghci", False)], ..} }
    
    845
    -    , testJob = NamedJob { name = jobName <> "-test", jobInfo = Job {jobScript = jobTestScript, jobNeeds = [(jobName, True)], jobStage = "testing", ..}} }
    
    848
    +    , testJobs =
    
    849
    +      NamedJob { name = jobName <> "-test", jobInfo = testJobInfo } :
    
    850
    +      [ NamedJob
    
    851
    +        { name = jobName <> "-testperf"
    
    852
    +        , jobInfo = testJobInfo
    
    853
    +          { jobVariables = testJobInfo.jobVariables <> "RUNTEST_ARGS" =: "--config perf_path=perf"
    
    854
    +          , jobTags = [runnerPerfTag arch opsys]
    
    855
    +          } }
    
    856
    +        | testsuiteUsePerf buildConfig  ] }
    
    846 857
       where
    
    858
    +    testJobInfo = Job {jobScript = jobTestScript, jobNeeds = [(jobName, True)], jobStage = "testing", ..}
    
    847 859
         jobPlatform = (arch, opsys)
    
    848 860
     
    
    849 861
         jobRules = emptyRules jobName
    
    850 862
     
    
    851
    -    jobName = testEnv arch opsys buildConfig
    
    863
    +    jobName = testEnv arch opsys buildConfig <> maybe "" ("-" <>) (extendName buildConfig)
    
    852 864
     
    
    853 865
         jobTags = tags arch opsys buildConfig
    
    854 866
     
    
    ... ... @@ -927,7 +939,6 @@ job arch opsys buildConfig =
    927 939
                     | validateNonmovingGc buildConfig
    
    928 940
                     ]
    
    929 941
             in "RUNTEST_ARGS" =: (trim . unwords) runtestArgs
    
    930
    -      , if testsuiteUsePerf buildConfig then "RUNTEST_ARGS" =: "--config perf_path=perf" else mempty
    
    931 942
           , "TEST_WAYS" =: unwords (testsuiteWays buildConfig)
    
    932 943
           ]
    
    933 944
     
    
    ... ... @@ -1021,26 +1032,26 @@ releaseRule = setJobRule ReleaseOnly
    1021 1032
     -- | Make a normal nightly CI job
    
    1022 1033
     nightly :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
    
    1023 1034
     nightly arch opsys bc =
    
    1024
    -  let MkBuildAndTestJob {buildJob, testJob} = job arch opsys bc
    
    1035
    +  let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc
    
    1025 1036
           mkJob (NamedJob n j)
    
    1026 1037
                  = NamedJob { name = "nightly-" ++ n
    
    1027 1038
                   , jobInfo = nightlyRule
    
    1028 1039
                             . keepArtifacts "8 weeks"
    
    1029 1040
                             . highCompression $ j
    
    1030 1041
                   }
    
    1031
    -      in MkBuildAndTestJob { buildJob = mkJob buildJob, testJob = mkJob testJob}
    
    1042
    +      in MkBuildAndTestJob { buildJob = mkJob buildJob, testJobs = map mkJob testJobs}
    
    1032 1043
     
    
    1033 1044
     -- | Make a normal release CI job
    
    1034 1045
     release :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
    
    1035 1046
     release arch opsys bc =
    
    1036
    -  let MkBuildAndTestJob {buildJob, testJob} = job arch opsys (bc { buildFlavour = Release })
    
    1047
    +  let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release })
    
    1037 1048
           mkJob (NamedJob n j) = NamedJob { name = "release-" ++ n
    
    1038 1049
                   , jobInfo = releaseRule
    
    1039 1050
                             . keepArtifacts "1 year"
    
    1040 1051
                             . ignorePerfFailures
    
    1041 1052
                             . highCompression $ j
    
    1042 1053
                   }
    
    1043
    -   in MkBuildAndTestJob {buildJob = mkJob buildJob, testJob = mkJob testJob}
    
    1054
    +   in MkBuildAndTestJob {buildJob = mkJob buildJob, testJobs = map mkJob testJobs}
    
    1044 1055
     ---------------------------------------------------------------------
    
    1045 1056
     -- Specific job modification functions
    
    1046 1057
     ---------------------------------------------------------------------
    
    ... ... @@ -1066,11 +1077,6 @@ ignorePerfFailures = addVariable "IGNORE_PERF_FAILURES" "all"
    1066 1077
     highCompression :: Job -> Job
    
    1067 1078
     highCompression = addVariable "XZ_OPT" "-9"
    
    1068 1079
     
    
    1069
    --- | Change the tag of the job to make sure the job is scheduled on a
    
    1070
    --- runner that has the necessary capabilties to run the job with 'perf'
    
    1071
    --- profiling counters.
    
    1072
    -perfProfilingJobTag :: Arch -> Opsys -> Job -> Job
    
    1073
    -perfProfilingJobTag arch opsys j = j { jobTags = [ runnerPerfTag arch opsys ] }
    
    1074 1080
     
    
    1075 1081
     -- | Mark the validate job to run in fast-ci mode
    
    1076 1082
     -- This is default way, to enable all jobs you have to apply the `full-ci` label.
    
    ... ... @@ -1103,12 +1109,9 @@ disableValidate = modifyValidateJobs (removeValidateJobRule FastCI . removeValid
    1103 1109
     
    
    1104 1110
     data NamedJob a = NamedJob { name :: String, jobInfo :: a } deriving (Show, Functor)
    
    1105 1111
     
    
    1106
    -data BuildAndTestJob a = MkBuildAndTestJob { buildJob :: NamedJob a, testJob :: NamedJob a}
    
    1112
    +data BuildAndTestJob a = MkBuildAndTestJob { buildJob :: NamedJob a, testJobs :: [NamedJob a]}
    
    1107 1113
       deriving stock (Show, Functor)
    
    1108 1114
     
    
    1109
    -renameJob :: (String -> String) -> BuildAndTestJob a -> BuildAndTestJob a
    
    1110
    -renameJob f MkBuildAndTestJob { buildJob = NamedJob n i, testJob = NamedJob n' i'} = MkBuildAndTestJob (NamedJob (f n) i) (NamedJob (f n') i')
    
    1111
    -
    
    1112 1115
     instance ToJSON a => ToJSON (NamedJob a) where
    
    1113 1116
       toJSON nj = object
    
    1114 1117
         [ "name" A..= name nj
    
    ... ... @@ -1134,11 +1137,8 @@ instance ToJSON a => ToJSON (JobGroup a) where
    1134 1137
         , "r" .= r ]
    
    1135 1138
     
    
    1136 1139
     instance ToJSON a => ToJSON (BuildAndTestJob a) where
    
    1137
    -  toJSON MkBuildAndTestJob {buildJob, testJob} =
    
    1138
    -    object [ "build" .= buildJob, "test" .= testJob ]
    
    1139
    -
    
    1140
    -rename :: (String -> String) -> JobGroup a -> JobGroup a
    
    1141
    -rename f (StandardTriple nv nn nr) = StandardTriple (renameJob f <$> nv) (renameJob f <$> nn) (renameJob f <$> nr)
    
    1140
    +  toJSON MkBuildAndTestJob {buildJob, testJobs} =
    
    1141
    +    object [ "build" .= buildJob, "test" .= testJobs ]
    
    1142 1142
     
    
    1143 1143
     -- | Construct a 'JobGroup' which consists of a validate, nightly and release build with
    
    1144 1144
     -- a specific config.
    
    ... ... @@ -1164,7 +1164,7 @@ flattenJobGroup :: JobGroup a -> [(String, a)]
    1164 1164
     flattenJobGroup (StandardTriple a b c) = concatMap flattenNamedJob (catMaybes [a,b,c])
    
    1165 1165
     
    
    1166 1166
     flattenNamedJob :: BuildAndTestJob a -> [(String, a)]
    
    1167
    -flattenNamedJob MkBuildAndTestJob {buildJob, testJob} = [(buildJob.name, buildJob.jobInfo), (testJob.name, testJob.jobInfo)]
    
    1167
    +flattenNamedJob MkBuildAndTestJob {buildJob, testJobs} = (buildJob.name, buildJob.jobInfo) :  map (\NamedJob {name, jobInfo} -> (name, jobInfo)) testJobs
    
    1168 1168
     
    
    1169 1169
     -- | Specification for all the jobs we want to build.
    
    1170 1170
     jobs :: Map String Job
    
    ... ... @@ -1191,8 +1191,9 @@ debian_x86 =
    1191 1191
       , modifyNightlyJobs allowFailure (modifyValidateJobs (allowFailure . manual) tsan_jobs)
    
    1192 1192
       , -- Nightly allowed to fail: #22343
    
    1193 1193
         modifyNightlyJobs allowFailure (modifyValidateJobs manual (validateBuilds Amd64 (Linux validate_debian) noTntc))
    
    1194
    +
    
    1194 1195
         -- Run the 'perf' profiling nightly job in the release config.
    
    1195
    -  , perfProfilingJob Amd64 (Linux Debian13) releaseConfig
    
    1196
    +  , disableValidate (validateBuilds Amd64 (Linux validate_debian) (usePerfProfilingTestsuite releaseConfig))
    
    1196 1197
     
    
    1197 1198
       , onlyRule LLVMBackend (validateBuilds Amd64 (Linux validate_debian) llvm)
    
    1198 1199
       , addValidateRule TestPrimops (standardBuilds Amd64 (Linux validate_debian))
    
    ... ... @@ -1203,12 +1204,6 @@ debian_x86 =
    1203 1204
       where
    
    1204 1205
         validate_debian = Debian13
    
    1205 1206
     
    
    1206
    -    perfProfilingJob arch sys buildConfig =
    
    1207
    -        -- Rename the job to avoid conflicts
    
    1208
    -        rename (<> "-perf")
    
    1209
    -          $ modifyJobs (perfProfilingJobTag arch sys)
    
    1210
    -          $ disableValidate (validateBuilds arch sys $ usePerfProfilingTestsuite buildConfig)
    
    1211
    -
    
    1212 1207
         tsan_jobs =
    
    1213 1208
           modifyJobs
    
    1214 1209
             ( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
    
    ... ... @@ -1250,7 +1245,7 @@ fedora_x86 =
    1250 1245
         -- validate pipeline which is built with perf.
    
    1251 1246
         fastCI (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig)
    
    1252 1247
         -- This job is only for generating head.hackage docs
    
    1253
    -  , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig))
    
    1248
    +  , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig { extendName = Just "hackage"}))
    
    1254 1249
       , disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) dwarf)
    
    1255 1250
       , disableValidate (standardBuilds Amd64 (Linux Fedora43))
    
    1256 1251
         -- For UBSan jobs, only enable for validate/nightly pipelines.
    
    ... ... @@ -1264,7 +1259,7 @@ fedora_x86 =
    1264 1259
           $ validateBuilds Amd64 (Linux Fedora43) enableUBSan
    
    1265 1260
       ]
    
    1266 1261
       where
    
    1267
    -    hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
    
    1262
    +    hackage_doc_job = modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
    
    1268 1263
     
    
    1269 1264
     windows_x86 :: [JobGroup Job]
    
    1270 1265
     windows_x86 =
    

  • .gitlab/jobs.yaml
    ... ... @@ -5107,7 +5107,7 @@
    5107 5107
           "XZ_OPT": "-9"
    
    5108 5108
         }
    
    5109 5109
       },
    
    5110
    -  "nightly-x86_64-linux-deb13-release-perf": {
    
    5110
    +  "nightly-x86_64-linux-deb13-release": {
    
    5111 5111
         "after_script": [
    
    5112 5112
           ".gitlab/ci.sh save_cache",
    
    5113 5113
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -5155,7 +5155,7 @@
    5155 5155
         ],
    
    5156 5156
         "stage": "full-build",
    
    5157 5157
         "tags": [
    
    5158
    -      "x86_64-linux-perf"
    
    5158
    +      "x86_64-linux"
    
    5159 5159
         ],
    
    5160 5160
         "variables": {
    
    5161 5161
           "BIGNUM_BACKEND": "gmp",
    
    ... ... @@ -5163,13 +5163,73 @@
    5163 5163
           "BUILD_FLAVOUR": "release",
    
    5164 5164
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    5165 5165
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    5166
    -      "RUNTEST_ARGS": " --config perf_path=perf",
    
    5166
    +      "RUNTEST_ARGS": "",
    
    5167 5167
           "TEST_ENV": "x86_64-linux-deb13-release",
    
    5168 5168
           "TEST_WAYS": "",
    
    5169 5169
           "XZ_OPT": "-9"
    
    5170 5170
         }
    
    5171 5171
       },
    
    5172
    -  "nightly-x86_64-linux-deb13-release-test-perf": {
    
    5172
    +  "nightly-x86_64-linux-deb13-release-test": {
    
    5173
    +    "after_script": [
    
    5174
    +      ".gitlab/ci.sh save_cache",
    
    5175
    +      ".gitlab/ci.sh save_test_output",
    
    5176
    +      ".gitlab/ci.sh clean",
    
    5177
    +      "cat ci_timings.txt"
    
    5178
    +    ],
    
    5179
    +    "allow_failure": false,
    
    5180
    +    "artifacts": {
    
    5181
    +      "expire_in": "8 weeks",
    
    5182
    +      "paths": [
    
    5183
    +        "ghc-x86_64-linux-deb13-release.tar.xz",
    
    5184
    +        "junit.xml",
    
    5185
    +        "unexpected-test-output.tar.gz"
    
    5186
    +      ],
    
    5187
    +      "reports": {
    
    5188
    +        "junit": "junit.xml"
    
    5189
    +      },
    
    5190
    +      "when": "always"
    
    5191
    +    },
    
    5192
    +    "cache": {
    
    5193
    +      "key": "x86_64-linux-deb13-$CACHE_REV",
    
    5194
    +      "paths": [
    
    5195
    +        "cabal-cache",
    
    5196
    +        "toolchain"
    
    5197
    +      ]
    
    5198
    +    },
    
    5199
    +    "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb13:$DOCKER_REV",
    
    5200
    +    "needs": [
    
    5201
    +      {
    
    5202
    +        "artifacts": true,
    
    5203
    +        "job": "x86_64-linux-deb13-release"
    
    5204
    +      }
    
    5205
    +    ],
    
    5206
    +    "rules": [
    
    5207
    +      {
    
    5208
    +        "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
    
    5209
    +        "when": "on_success"
    
    5210
    +      }
    
    5211
    +    ],
    
    5212
    +    "script": [
    
    5213
    +      ".gitlab/ci.sh setup",
    
    5214
    +      ".gitlab/ci.sh test_hadrian"
    
    5215
    +    ],
    
    5216
    +    "stage": "testing",
    
    5217
    +    "tags": [
    
    5218
    +      "x86_64-linux"
    
    5219
    +    ],
    
    5220
    +    "variables": {
    
    5221
    +      "BIGNUM_BACKEND": "gmp",
    
    5222
    +      "BIN_DIST_NAME": "ghc-x86_64-linux-deb13-release",
    
    5223
    +      "BUILD_FLAVOUR": "release",
    
    5224
    +      "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    5225
    +      "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    5226
    +      "RUNTEST_ARGS": "",
    
    5227
    +      "TEST_ENV": "x86_64-linux-deb13-release",
    
    5228
    +      "TEST_WAYS": "",
    
    5229
    +      "XZ_OPT": "-9"
    
    5230
    +    }
    
    5231
    +  },
    
    5232
    +  "nightly-x86_64-linux-deb13-release-testperf": {
    
    5173 5233
         "after_script": [
    
    5174 5234
           ".gitlab/ci.sh save_cache",
    
    5175 5235
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -6218,7 +6278,7 @@
    6218 6278
           "XZ_OPT": "-9"
    
    6219 6279
         }
    
    6220 6280
       },
    
    6221
    -  "nightly-x86_64-linux-fedora43-release-test": {
    
    6281
    +  "nightly-x86_64-linux-fedora43-release-hackage-test": {
    
    6222 6282
         "after_script": [
    
    6223 6283
           ".gitlab/ci.sh save_cache",
    
    6224 6284
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -6249,7 +6309,7 @@
    6249 6309
         "needs": [
    
    6250 6310
           {
    
    6251 6311
             "artifacts": true,
    
    6252
    -        "job": "x86_64-linux-fedora43-release"
    
    6312
    +        "job": "x86_64-linux-fedora43-release-hackage"
    
    6253 6313
           }
    
    6254 6314
         ],
    
    6255 6315
         "rules": [
    
    ... ... @@ -6271,6 +6331,7 @@
    6271 6331
           "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
    
    6272 6332
           "BUILD_FLAVOUR": "release",
    
    6273 6333
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    6334
    +      "HADRIAN_ARGS": "--haddock-for-hackage",
    
    6274 6335
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    6275 6336
           "RUNTEST_ARGS": "",
    
    6276 6337
           "TEST_ENV": "x86_64-linux-fedora43-release",
    
    ... ... @@ -6278,7 +6339,7 @@
    6278 6339
           "XZ_OPT": "-9"
    
    6279 6340
         }
    
    6280 6341
       },
    
    6281
    -  "nightly-x86_64-linux-fedora43-release-test-hackage": {
    
    6342
    +  "nightly-x86_64-linux-fedora43-release-test": {
    
    6282 6343
         "after_script": [
    
    6283 6344
           ".gitlab/ci.sh save_cache",
    
    6284 6345
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -6331,7 +6392,6 @@
    6331 6392
           "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
    
    6332 6393
           "BUILD_FLAVOUR": "release",
    
    6333 6394
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    6334
    -      "HADRIAN_ARGS": "--haddock-for-hackage",
    
    6335 6395
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    6336 6396
           "RUNTEST_ARGS": "",
    
    6337 6397
           "TEST_ENV": "x86_64-linux-fedora43-release",
    
    ... ... @@ -9971,7 +10031,7 @@
    9971 10031
           "XZ_OPT": "-9"
    
    9972 10032
         }
    
    9973 10033
       },
    
    9974
    -  "release-x86_64-linux-fedora43-release-test": {
    
    10034
    +  "release-x86_64-linux-fedora43-release-hackage-test": {
    
    9975 10035
         "after_script": [
    
    9976 10036
           ".gitlab/ci.sh save_cache",
    
    9977 10037
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -10002,7 +10062,7 @@
    10002 10062
         "needs": [
    
    10003 10063
           {
    
    10004 10064
             "artifacts": true,
    
    10005
    -        "job": "x86_64-linux-fedora43-release"
    
    10065
    +        "job": "x86_64-linux-fedora43-release-hackage"
    
    10006 10066
           }
    
    10007 10067
         ],
    
    10008 10068
         "rules": [
    
    ... ... @@ -10024,6 +10084,7 @@
    10024 10084
           "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
    
    10025 10085
           "BUILD_FLAVOUR": "release",
    
    10026 10086
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    10087
    +      "HADRIAN_ARGS": "--haddock-for-hackage",
    
    10027 10088
           "IGNORE_PERF_FAILURES": "all",
    
    10028 10089
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    10029 10090
           "RUNTEST_ARGS": "",
    
    ... ... @@ -10032,7 +10093,7 @@
    10032 10093
           "XZ_OPT": "-9"
    
    10033 10094
         }
    
    10034 10095
       },
    
    10035
    -  "release-x86_64-linux-fedora43-release-test-hackage": {
    
    10096
    +  "release-x86_64-linux-fedora43-release-test": {
    
    10036 10097
         "after_script": [
    
    10037 10098
           ".gitlab/ci.sh save_cache",
    
    10038 10099
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -10085,7 +10146,6 @@
    10085 10146
           "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
    
    10086 10147
           "BUILD_FLAVOUR": "release",
    
    10087 10148
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    10088
    -      "HADRIAN_ARGS": "--haddock-for-hackage",
    
    10089 10149
           "IGNORE_PERF_FAILURES": "all",
    
    10090 10150
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    10091 10151
           "RUNTEST_ARGS": "",
    
    ... ... @@ -12701,7 +12761,7 @@
    12701 12761
           "TEST_WAYS": ""
    
    12702 12762
         }
    
    12703 12763
       },
    
    12704
    -  "x86_64-linux-deb13-release-perf": {
    
    12764
    +  "x86_64-linux-deb13-release": {
    
    12705 12765
         "after_script": [
    
    12706 12766
           ".gitlab/ci.sh save_cache",
    
    12707 12767
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -12749,7 +12809,7 @@
    12749 12809
         ],
    
    12750 12810
         "stage": "full-build",
    
    12751 12811
         "tags": [
    
    12752
    -      "x86_64-linux-perf"
    
    12812
    +      "x86_64-linux"
    
    12753 12813
         ],
    
    12754 12814
         "variables": {
    
    12755 12815
           "BIGNUM_BACKEND": "gmp",
    
    ... ... @@ -12757,12 +12817,71 @@
    12757 12817
           "BUILD_FLAVOUR": "release",
    
    12758 12818
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    12759 12819
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    12760
    -      "RUNTEST_ARGS": " --config perf_path=perf",
    
    12820
    +      "RUNTEST_ARGS": "",
    
    12761 12821
           "TEST_ENV": "x86_64-linux-deb13-release",
    
    12762 12822
           "TEST_WAYS": ""
    
    12763 12823
         }
    
    12764 12824
       },
    
    12765
    -  "x86_64-linux-deb13-release-test-perf": {
    
    12825
    +  "x86_64-linux-deb13-release-test": {
    
    12826
    +    "after_script": [
    
    12827
    +      ".gitlab/ci.sh save_cache",
    
    12828
    +      ".gitlab/ci.sh save_test_output",
    
    12829
    +      ".gitlab/ci.sh clean",
    
    12830
    +      "cat ci_timings.txt"
    
    12831
    +    ],
    
    12832
    +    "allow_failure": false,
    
    12833
    +    "artifacts": {
    
    12834
    +      "expire_in": "2 weeks",
    
    12835
    +      "paths": [
    
    12836
    +        "ghc-x86_64-linux-deb13-release.tar.xz",
    
    12837
    +        "junit.xml",
    
    12838
    +        "unexpected-test-output.tar.gz"
    
    12839
    +      ],
    
    12840
    +      "reports": {
    
    12841
    +        "junit": "junit.xml"
    
    12842
    +      },
    
    12843
    +      "when": "always"
    
    12844
    +    },
    
    12845
    +    "cache": {
    
    12846
    +      "key": "x86_64-linux-deb13-$CACHE_REV",
    
    12847
    +      "paths": [
    
    12848
    +        "cabal-cache",
    
    12849
    +        "toolchain"
    
    12850
    +      ]
    
    12851
    +    },
    
    12852
    +    "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb13:$DOCKER_REV",
    
    12853
    +    "needs": [
    
    12854
    +      {
    
    12855
    +        "artifacts": true,
    
    12856
    +        "job": "x86_64-linux-deb13-release"
    
    12857
    +      }
    
    12858
    +    ],
    
    12859
    +    "rules": [
    
    12860
    +      {
    
    12861
    +        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb13-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    12862
    +        "when": "on_success"
    
    12863
    +      }
    
    12864
    +    ],
    
    12865
    +    "script": [
    
    12866
    +      ".gitlab/ci.sh setup",
    
    12867
    +      ".gitlab/ci.sh test_hadrian"
    
    12868
    +    ],
    
    12869
    +    "stage": "testing",
    
    12870
    +    "tags": [
    
    12871
    +      "x86_64-linux"
    
    12872
    +    ],
    
    12873
    +    "variables": {
    
    12874
    +      "BIGNUM_BACKEND": "gmp",
    
    12875
    +      "BIN_DIST_NAME": "ghc-x86_64-linux-deb13-release",
    
    12876
    +      "BUILD_FLAVOUR": "release",
    
    12877
    +      "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    12878
    +      "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    12879
    +      "RUNTEST_ARGS": "",
    
    12880
    +      "TEST_ENV": "x86_64-linux-deb13-release",
    
    12881
    +      "TEST_WAYS": ""
    
    12882
    +    }
    
    12883
    +  },
    
    12884
    +  "x86_64-linux-deb13-release-testperf": {
    
    12766 12885
         "after_script": [
    
    12767 12886
           ".gitlab/ci.sh save_cache",
    
    12768 12887
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -13770,7 +13889,7 @@
    13770 13889
         ],
    
    13771 13890
         "rules": [
    
    13772 13891
           {
    
    13773
    -        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    13892
    +        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release-hackage(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    13774 13893
             "when": "on_success"
    
    13775 13894
           }
    
    13776 13895
         ],
    
    ... ... @@ -13796,7 +13915,7 @@
    13796 13915
           "TEST_WAYS": ""
    
    13797 13916
         }
    
    13798 13917
       },
    
    13799
    -  "x86_64-linux-fedora43-release-test": {
    
    13918
    +  "x86_64-linux-fedora43-release-hackage-test": {
    
    13800 13919
         "after_script": [
    
    13801 13920
           ".gitlab/ci.sh save_cache",
    
    13802 13921
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -13827,12 +13946,12 @@
    13827 13946
         "needs": [
    
    13828 13947
           {
    
    13829 13948
             "artifacts": true,
    
    13830
    -        "job": "x86_64-linux-fedora43-release"
    
    13949
    +        "job": "x86_64-linux-fedora43-release-hackage"
    
    13831 13950
           }
    
    13832 13951
         ],
    
    13833 13952
         "rules": [
    
    13834 13953
           {
    
    13835
    -        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    13954
    +        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release-hackage(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    13836 13955
             "when": "on_success"
    
    13837 13956
           }
    
    13838 13957
         ],
    
    ... ... @@ -13849,13 +13968,14 @@
    13849 13968
           "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
    
    13850 13969
           "BUILD_FLAVOUR": "release",
    
    13851 13970
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    13971
    +      "HADRIAN_ARGS": "--haddock-for-hackage",
    
    13852 13972
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    13853 13973
           "RUNTEST_ARGS": "",
    
    13854 13974
           "TEST_ENV": "x86_64-linux-fedora43-release",
    
    13855 13975
           "TEST_WAYS": ""
    
    13856 13976
         }
    
    13857 13977
       },
    
    13858
    -  "x86_64-linux-fedora43-release-test-hackage": {
    
    13978
    +  "x86_64-linux-fedora43-release-test": {
    
    13859 13979
         "after_script": [
    
    13860 13980
           ".gitlab/ci.sh save_cache",
    
    13861 13981
           ".gitlab/ci.sh save_test_output",
    
    ... ... @@ -13891,7 +14011,7 @@
    13891 14011
         ],
    
    13892 14012
         "rules": [
    
    13893 14013
           {
    
    13894
    -        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    14014
    +        "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
    
    13895 14015
             "when": "on_success"
    
    13896 14016
           }
    
    13897 14017
         ],
    
    ... ... @@ -13908,7 +14028,6 @@
    13908 14028
           "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
    
    13909 14029
           "BUILD_FLAVOUR": "release",
    
    13910 14030
           "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    13911
    -      "HADRIAN_ARGS": "--haddock-for-hackage",
    
    13912 14031
           "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
    
    13913 14032
           "RUNTEST_ARGS": "",
    
    13914 14033
           "TEST_ENV": "x86_64-linux-fedora43-release",