diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2025-12-13 21:39:15 +0100 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-12-16 21:57:05 +0100 |
| commit | abcb6bf31ff9c86c4c1f3edf0b184dae8159f812 (patch) | |
| tree | 80b362f5f93b716ce90ad9d8339ff028b6a87f5a /src | |
| parent | aecba79be823cdcf5d48042f84adfe46c209f109 (diff) | |
Changelog: Prepare used artifacts for the `shell` command
Diffstat (limited to 'src')
| -rw-r--r-- | src/Job.hs | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -388,6 +388,13 @@ prepareJob dir job inner = do subtree <- maybe return (getSubtree Nothing . makeRelative (treeSubdir tree)) mbsub $ tree checkoutAt subtree $ checkoutPath </> fromMaybe "" dest + liftIO $ forM_ (jobUses job) $ \( jid, aname ) -> do + modifyError (userError . T.unpack) $ do + wpath <- getArtifactWorkPath dir jid aname + let target = checkoutPath </> wpath + liftIO $ createDirectoryIfMissing True $ takeDirectory target + copyArtifact dir jid aname target + let jdir = dir </> jobStorageSubdir (jobId job) liftIO $ createDirectoryIfMissing True jdir inner checkoutPath @@ -420,11 +427,6 @@ copyArtifact storageDir jid aname tpath = do runJob :: Job -> [ ( ArtifactSpec Evaluated, ArtifactOutput) ] -> FilePath -> FilePath -> ExceptT (JobStatus JobOutput) IO JobOutput runJob job uses checkoutPath jdir = do - liftIO $ forM_ (filter ((`elem` jobUses job) . fst) uses) $ \( _, aout ) -> do - let target = checkoutPath </> aoutWorkPath aout - createDirectoryIfMissing True $ takeDirectory target - copyRecursive (aoutStorePath aout) target - bracket (liftIO $ openFile (jdir </> "log") WriteMode) (liftIO . hClose) $ \logs -> do forM_ (fromMaybe [] $ jobRecipe job) $ \ep -> do ( p, input ) <- case ep of |