diff --git a/models/actions/task.go b/models/actions/task.go index 1a208dad9d..ed2cab60e8 100644 --- a/models/actions/task.go +++ b/models/actions/task.go @@ -451,9 +451,7 @@ func CreateTaskForRunner(ctx context.Context, runner *ActionRunner, requestKey, } // Placeholder tasks are created when the status/content of an [ActionRunJob] is resolved by Forgejo without dispatch to -// a runner, specifically in the case of a workflow call's outer job. It is the responsibility of the caller to -// increment the job's Attempt field before invoking this method, and to update that field in the database, so that -// reruns can function for placeholder tasks and provide updated outputs. +// a runner, specifically in the case of a workflow call's outer job. func CreatePlaceholderTask(ctx context.Context, job *ActionRunJob, outputs map[string]string) (*ActionTask, error) { actionTask := &ActionTask{ JobID: job.ID, diff --git a/services/actions/Test_tryHandleWorkflowCallOuterJob/action_run_job.yml b/services/actions/Test_tryHandleWorkflowCallOuterJob/action_run_job.yml index 03449040ca..f710f4bf2e 100644 --- a/services/actions/Test_tryHandleWorkflowCallOuterJob/action_run_job.yml +++ b/services/actions/Test_tryHandleWorkflowCallOuterJob/action_run_job.yml @@ -1,6 +1,7 @@ # Case 600 -- workflow that is not a workflow call outer job - id: 600 + attempt: 1 status: 1 # success started: 1683636528 workflow_payload: | @@ -18,6 +19,7 @@ # contexts should be considered as those in `on.workflow_call.outputs`. - id: 601 + attempt: 1 run_id: 900 status: 1 # success started: 1683636528 @@ -44,6 +46,7 @@ workflow_call_id: b5a9f46f1f2513d7777fde50b169d323a6519e349cc175484c947ac315a209ed - # inner job of run 601 id: 602 + attempt: 1 run_id: 900 status: 1 # success job_id: outer-job.inner-job @@ -54,7 +57,7 @@ - id: 603 run_id: 901 - attempt: 1 + attempt: 2 status: 1 # success started: 1683636528 needs: ["outer-job.inner-job"] @@ -81,6 +84,7 @@ - # inner job of run 603 id: 604 run_id: 901 + attempt: 2 status: 1 # success job_id: outer-job.inner-job task_id: 101 diff --git a/services/actions/job_emitter.go b/services/actions/job_emitter.go index 02ad9d66f5..b23918e42f 100644 --- a/services/actions/job_emitter.go +++ b/services/actions/job_emitter.go @@ -597,7 +597,6 @@ func tryHandleWorkflowCallOuterJob(ctx context.Context, job *actions_model.Actio ) // Insert a placeholder task with all the computed outputs - job.Attempt++ actionTask, err := actions_model.CreatePlaceholderTask(ctx, job, outputs) if err != nil { return nil, fmt.Errorf("failure to insert placeholder task: %w", err)