summaryrefslogtreecommitdiff
path: root/Omni/Agent/Worker.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Omni/Agent/Worker.hs')
-rw-r--r--Omni/Agent/Worker.hs23
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"