diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2025-12-09 22:22:03 +0100 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-12-09 22:22:03 +0100 |
| commit | 72c83a013caed4f3f850731988734d125df6a720 (patch) | |
| tree | 77ceff37bb85996c8a73720ef26e54e72ca9df28 /src/Eval.hs | |
| parent | 1ece3ebb35fbe21009176b18acb4d649613e32e6 (diff) | |
Fix selecting single job from evaluated job ref
Diffstat (limited to 'src/Eval.hs')
| -rw-r--r-- | src/Eval.hs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Eval.hs b/src/Eval.hs index 2afec42..6680c44 100644 --- a/src/Eval.hs +++ b/src/Eval.hs @@ -6,6 +6,7 @@ module Eval ( evalJobSet, evalJobSetSelected, evalJobReference, + evalJobReferenceToSet, loadJobSetById, ) where @@ -257,14 +258,21 @@ canonicalCommitConfig rs repo = do local (\ei -> ei { eiCurrentIdRev = JobIdTree Nothing "" (treeId tree) : eiCurrentIdRev ei }) $ canonicalJobName rs' config (Just tree) -evalJobReference :: JobRef -> Eval JobSet -evalJobReference (JobRef rs) = +evalJobReferenceToSet :: JobRef -> Eval JobSet +evalJobReferenceToSet (JobRef rs) = asks eiJobRoot >>= \case JobRootRepo defRepo -> do canonicalCommitConfig rs defRepo JobRootConfig config -> do canonicalJobName rs config Nothing +evalJobReference :: JobRef -> Eval Job +evalJobReference ref = do + jset <- evalJobReferenceToSet ref + jobs <- either (throwError . OtherEvalError . T.pack) return $ jobsetJobsEither jset + [ name ] <- return $ jobsetExplicitlyRequested jset + maybe (error "missing job in evalJobReferenceToSet result") return $ find ((name ==) . jobId) jobs + jobsetFromConfig :: [ JobIdPart ] -> Config -> Maybe Tree -> Eval ( DeclaredJobSet, [ JobIdPart ], [ ( Maybe RepoName, Tree ) ] ) jobsetFromConfig sid config _ = do |