diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-09-13 14:47:06 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-09-18 20:56:28 +0200 |
| commit | 76b4a34b8adeff1097874ca683712eb00fd748b1 (patch) | |
| tree | 89c476f9b2034fa28fef6f35ca0b1a015c6c97e8 /src | |
| parent | a6247056a63d52b2253c4c88a0c9b988aaa4ebcd (diff) | |
Do not fail globally on eval error of individual jobset
Diffstat (limited to 'src')
| -rw-r--r-- | src/Command/Run.hs | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/Command/Run.hs b/src/Command/Run.hs index 6a0fcd4..85bc59d 100644 --- a/src/Command/Run.hs +++ b/src/Command/Run.hs @@ -239,8 +239,16 @@ watchExpressionSource expr = do let einput = einputBase { eiCurrentIdRev = JobIdRepo Nothing (JobIdTree (treeSubdir tree) (treeId tree)) : eiCurrentIdRev einputBase } - jsiJobSet <- either (fail . T.unpack . textEvalError) return =<< - flip runEval einput . evalJobSet [ ( Nothing, RepoRefTree tree ) ] =<< loadJobSetFromRoot root commit + dset <- loadJobSetFromRoot root commit + let fset err = JobSet + { jobsetId = JobSetId $ reverse $ eiCurrentIdRev einput + , jobsetConfig = Nothing + , jobsetCommit = Just commit + , jobsetExplicitlyRequested = [] + , jobsetJobsEither = Left $ T.unpack $ textEvalError err + } + jsiJobSet <- fmap (either fset id) $ flip runEval einput $ + evalJobSet [ ( Nothing, RepoRefTree tree ) ] dset jsiCancelAction <- Just <$> newEmptyMVar return JobSourceItem {..} @@ -285,8 +293,16 @@ watchTagSource pat = do let einput = einputBase { eiCurrentIdRev = JobIdRepo Nothing (JobIdTree (treeSubdir tree) (treeId tree)) : eiCurrentIdRev einputBase } - jsiJobSet <- either (fail . T.unpack . textEvalError) return =<< - flip runEval einput . evalJobSet [ ( Nothing, RepoRefTree tree ) ] =<< loadJobSetFromRoot root (tagObject tag) + dset <- loadJobSetFromRoot root (tagObject tag) + let fset err = JobSet + { jobsetId = JobSetId $ reverse $ eiCurrentIdRev einput + , jobsetConfig = Nothing + , jobsetCommit = Just $ tagObject tag + , jobsetExplicitlyRequested = [] + , jobsetJobsEither = Left $ T.unpack $ textEvalError err + } + jsiJobSet <- fmap (either fset id) $ flip runEval einput $ + evalJobSet [ ( Nothing, RepoRefTree tree ) ] dset let jsiCancelAction = Nothing nextvar <- newEmptyTMVarIO atomically $ putTMVar tmvar $ Just ( [ JobSourceItem {..} ], JobSource nextvar ) |