[Git][ghc/ghc][wip/supersven/cross-compiler-manual-test-jobs] 3 commits: ci: fix platform_mapping collision for manual testsuite jobs
Sven Tennie pushed to branch wip/supersven/cross-compiler-manual-test-jobs at Glasgow Haskell Compiler / GHC Commits: 508cc020 by Sven Tennie at 2026-06-07T10:23:11+00:00 ci: fix platform_mapping collision for manual testsuite jobs Both the build job and its manual test job share the same (Arch, Opsys) platform, causing platform_mapping's combine function to error. Prefer the build job when one of the two has the -manual-testsuite suffix. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> - - - - - 5ffab85d by Sven Tennie at 2026-06-07T15:36:12+00:00 ci: simplify crossTestJob helpers - Remove WHAT-explaining haddocks on crossTestJob and withCrossTestJob - renameRule fallback now errors explicitly rather than silently no-oping Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> - - - - - 7206c32b by Sven Tennie at 2026-06-07T15:47:09+00:00 ci: set jobDependencies in crossTestJob to enable artifact download GitLab: dependencies:[] overrides needs:[{artifacts:true}], preventing artifact download. Set dependencies:[buildName] so the bindist tarball is actually fetched from the build job. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> - - - - - 2 changed files: - .gitlab/generate-ci/gen_ci.hs - .gitlab/jobs.yaml Changes: ===================================== .gitlab/generate-ci/gen_ci.hs ===================================== @@ -591,7 +591,7 @@ manualRule rules = rules { when = Manual } renameRule :: String -> OnOffRules -> OnOffRules renameRule n (OnOffRules (ValidateOnly _ rs) w) = OnOffRules (ValidateOnly n rs) w -renameRule _ r = r +renameRule _ r = error $ "renameRule: not a ValidateOnly rule: " ++ show (rule_set r) -- Given 'OnOffRules', returns a list of ALL rules with their toggled status. -- For example, even if you don't explicitly disable a rule it will end up in the @@ -1009,14 +1009,13 @@ release arch opsys bc = . ignorePerfFailures . highCompression $ j } --- | Derive a manually-triggered full-testsuite job from a cross-compiler build job. --- The test job downloads the build job's bindist artifact and runs the full testsuite. crossTestJob :: NamedJob Job -> NamedJob Job crossTestJob (NamedJob buildName buildJob) = NamedJob testName $ buildJob { jobNeeds = ["hadrian-ghc-in-ghci"] , jobNeedsWithArtifacts = [buildName] + , jobDependencies = [buildName] , jobScript = testScript (jobPlatform buildJob) , jobRules = renameRule testName $ manualRule (jobRules buildJob) , jobAllowFailure = True @@ -1030,8 +1029,6 @@ crossTestJob (NamedJob buildName buildJob) = , ".gitlab/ci.sh test_hadrian_cross_full" ] --- | Pair a cross-compiler build JobGroup with a manual test job derived from --- its validate variant. withCrossTestJob :: JobGroup Job -> [JobGroup Job] withCrossTestJob jg@(StandardTriple (Just vj) _ _) = [jg, StandardTriple (Just (crossTestJob vj)) Nothing Nothing] @@ -1485,6 +1482,8 @@ platform_mapping = Map.map go combined_result , show (name b) ] -- Explicitly selected | name a `elem` whitelist = a -- Explicitly selected | name b `elem` whitelist = b + | "-manual-testsuite" `isSuffixOf` name a = b -- prefer build job over manual test job + | "-manual-testsuite" `isSuffixOf` name b = a | otherwise = error (show (name a) ++ show (name b)) go = fmap (BindistInfo . unwords . fromJust . mmlookup "BIN_DIST_NAME" . jobVariables) ===================================== .gitlab/jobs.yaml ===================================== @@ -444,7 +444,9 @@ "toolchain" ] }, - "dependencies": [], + "dependencies": [ + "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvm" + ], "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12-wine:$DOCKER_REV", "needs": [ { @@ -530,7 +532,9 @@ "toolchain" ] }, - "dependencies": [], + "dependencies": [ + "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate" + ], "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12-wine:$DOCKER_REV", "needs": [ { @@ -6546,7 +6550,9 @@ "toolchain" ] }, - "dependencies": [], + "dependencies": [ + "x86_64-linux-deb13-cross_aarch64-linux-gnu-validate" + ], "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb13:$DOCKER_REV", "needs": [ { @@ -6928,7 +6934,9 @@ "toolchain" ] }, - "dependencies": [], + "dependencies": [ + "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validate" + ], "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb13-riscv:$DOCKER_REV", "needs": [ { @@ -7872,7 +7880,9 @@ "toolchain" ] }, - "dependencies": [], + "dependencies": [ + "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validate" + ], "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu24_04-loongarch:$DOCKER_REV", "needs": [ { View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/7ae6c7ae4a20054de2721d29b8590b4... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/7ae6c7ae4a20054de2721d29b8590b4... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Sven Tennie (@supersven)