Run each workflow stage as its own task, with fan-out and fan-in
This commit is contained in:
@@ -44,12 +44,14 @@ func (m *Manager) Fork(ctx context.Context, src api.Task, project api.Project, n
|
||||
}
|
||||
|
||||
t, err := m.createTask(ctx, project, api.Task{
|
||||
Title: fmt.Sprintf("%s (fork of #%d)", src.Title, n),
|
||||
MergeTitle: src.MergeTitle,
|
||||
CreatedBy: creator.Login,
|
||||
TodoItem: src.TodoItem,
|
||||
ForkedFrom: &src.Id,
|
||||
ForkedAt: &n,
|
||||
Title: fmt.Sprintf("%s (fork of #%d)", src.Title, n),
|
||||
MergeTitle: src.MergeTitle,
|
||||
CreatedBy: creator.Login,
|
||||
TodoItem: src.TodoItem,
|
||||
ForkedFrom: &src.Id,
|
||||
ForkedAt: &n,
|
||||
WorkflowRun: src.WorkflowRun,
|
||||
WorkflowStage: src.WorkflowStage,
|
||||
}, frozen, snap.CommitSha, creator.Login)
|
||||
if err != nil {
|
||||
return api.Task{}, err
|
||||
@@ -68,7 +70,6 @@ func (m *Manager) Fork(ctx context.Context, src api.Task, project api.Project, n
|
||||
CreatedAt: time.Now().UTC(),
|
||||
ForkedFrom: &srcSess.VendorSessionId,
|
||||
ForkedAt: &at,
|
||||
WorkflowStage: srcSess.WorkflowStage,
|
||||
}, t.ProjectId)
|
||||
if err != nil {
|
||||
return api.Task{}, fmt.Errorf("task %s created, but its agent session was not: %w", t.Id, err)
|
||||
|
||||
Reference in New Issue
Block a user