summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-11-26 21:38:01 +0100
committerRoman Smrž <roman.smrz@seznam.cz>2025-11-28 22:17:37 +0100
commitc11cf4ea1822b280be7873c61c004d23627b0349 (patch)
tree2034775aa1218705b72b75ff579e86dc8b894117 /src
parentb100f6e64074c761327e1113a0c8afaf74091a23 (diff)
Well-defined order of dependencies in job ID
Diffstat (limited to 'src')
-rw-r--r--src/Eval.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Eval.hs b/src/Eval.hs
index e98bb29..71c9b9f 100644
--- a/src/Eval.hs
+++ b/src/Eval.hs
@@ -81,7 +81,9 @@ collectOtherRepos dset decl = do
]
let commonSubdir reporev = joinPath $ foldr1 commonPrefix $
map (maybe [] splitDirectories . jcSubtree) . filter ((reporev ==) . jcRepo) $ checkouts
- return $ map (\r -> ( r, commonSubdir r )) . nub . map jcRepo $ checkouts
+ let canonicalRepoOrder = Nothing : maybe [] (map (Just . repoName) . configRepos) (jobsetConfig dset)
+ getCheckoutsForName rname = map (\r -> ( r, commonSubdir r )) $ nub $ filter ((rname ==) . fmap fst) $ map jcRepo checkouts
+ return $ concatMap getCheckoutsForName canonicalRepoOrder
evalJob :: [ ( Maybe RepoName, Tree ) ] -> DeclaredJobSet -> DeclaredJob -> Eval ( Job, JobSetId )