diff options
Diffstat (limited to 'Omni/Agent/Worker.hs')
| -rw-r--r-- | Omni/Agent/Worker.hs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/Omni/Agent/Worker.hs b/Omni/Agent/Worker.hs index 23dd759..59d576f 100644 --- a/Omni/Agent/Worker.hs +++ b/Omni/Agent/Worker.hs @@ -74,7 +74,7 @@ processTask worker task = do Log.info ["worker", "basing", taskBranch, "on", baseBranch] Git.checkout repo baseBranch else Log.info ["worker", "basing", taskBranch, "on live"] - + Git.createBranch repo taskBranch -- Run Amp @@ -173,17 +173,18 @@ findBaseBranch repo task = do let deps = TaskCore.taskDependencies task -- Filter for blocking dependencies let blockingDeps = filter (\d -> TaskCore.depType d == TaskCore.Blocks || TaskCore.depType d == TaskCore.ParentChild) deps - + -- Check if any have unmerged branches - candidates <- flip filterM blockingDeps <| \dep -> do - let branch = "task/" <> TaskCore.depId dep - exists <- Git.branchExists repo branch - if exists - then do - merged <- Git.isMerged repo branch "live" - pure (not merged) - else pure False - + candidates <- + flip filterM blockingDeps <| \dep -> do + let branch = "task/" <> TaskCore.depId dep + exists <- Git.branchExists repo branch + if exists + then do + merged <- Git.isMerged repo branch "live" + pure (not merged) + else pure False + case candidates of (candidate : _) -> pure ("task/" <> TaskCore.depId candidate) [] -> pure "live" |
