diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2025-11-29 19:51:37 +0100 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-11-29 19:51:37 +0100 |
| commit | 60d653c05420f4ca7b41e73bb252268c34d946fe (patch) | |
| tree | ffc5080d63862d70e80f9f4f3588aa4bb5e5ff22 /src | |
| parent | 75e7be5f3763bfc425d84e1cf761fe62e607105d (diff) | |
Include artifacts required via ‘publish’ in the job ID
Diffstat (limited to 'src')
| -rw-r--r-- | src/Eval.hs | 2 | ||||
| -rw-r--r-- | src/Job.hs | 3 | ||||
| -rw-r--r-- | src/Job/Types.hs | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/Eval.hs b/src/Eval.hs index 7a5bad3..d260d91 100644 --- a/src/Eval.hs +++ b/src/Eval.hs @@ -69,7 +69,7 @@ collectOtherRepos dset decl = do let gatherDependencies seen (d : ds) | d `elem` seen = gatherDependencies seen ds | Just job <- find ((d ==) . jobName) jobs - = gatherDependencies (d : seen) (map fst (jobUses job) ++ ds) + = gatherDependencies (d : seen) (map fst (jobRequiredArtifacts job) ++ ds) | otherwise = gatherDependencies (d : seen) ds gatherDependencies seen [] = seen @@ -23,7 +23,6 @@ import Control.Monad.Catch import Control.Monad.Except import Control.Monad.IO.Class -import Data.Containers.ListUtils import Data.List import Data.Map (Map) import Data.Map qualified as M @@ -304,7 +303,7 @@ waitForUsedArtifacts -> m [ ( ArtifactSpec, ArtifactOutput ) ] waitForUsedArtifacts tout job results outVar = do origState <- liftIO $ atomically $ readTVar outVar - let ( selfSpecs, artSpecs ) = partition ((jobName job ==) . fst) $ nubOrd $ jobUses job ++ (map jpArtifact $ jobPublish job) + let ( selfSpecs, artSpecs ) = partition ((jobName job ==) . fst) $ jobRequiredArtifacts job forM_ selfSpecs $ \( _, artName@(ArtifactName tname) ) -> do when (not (artName `elem` map fst (jobArtifacts job))) $ do diff --git a/src/Job/Types.hs b/src/Job/Types.hs index 8d02057..5d3f0f3 100644 --- a/src/Job/Types.hs +++ b/src/Job/Types.hs @@ -1,5 +1,6 @@ module Job.Types where +import Data.Containers.ListUtils import Data.Kind import Data.Text (Text) import Data.Text qualified as T @@ -41,6 +42,9 @@ stringJobName (JobName name) = T.unpack name textJobName :: JobName -> Text textJobName (JobName name) = name +jobRequiredArtifacts :: Job' d -> [ ArtifactSpec ] +jobRequiredArtifacts job = nubOrd $ jobUses job ++ (map jpArtifact $ jobPublish job) + type family JobRepo d :: Type where JobRepo Declared = Maybe ( RepoName, Maybe Text ) |