From 76b4a34b8adeff1097874ca683712eb00fd748b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 13 Sep 2026 14:47:06 +0200 Subject: Do not fail globally on eval error of individual jobset --- src/Command/Run.hs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/Command') 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 ) -- cgit v1.2.3