Browse Source

Fix job status aggregation logic (#35000)

For a run (assume 2 jobs) that has a failed job and a waiting job, the
run status should be waiting, **as the run is not done yet.**

Related #34823
pull/35111/head
NorthRealm 5 months ago committed by GitHub
parent
commit
39f145ae72
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      models/actions/run_job.go
  2. 2
      models/actions/run_job_status_test.go

4
models/actions/run_job.go

@ -187,10 +187,10 @@ func AggregateJobStatus(jobs []*ActionRunJob) Status { @@ -187,10 +187,10 @@ func AggregateJobStatus(jobs []*ActionRunJob) Status {
return StatusCancelled
case hasRunning:
return StatusRunning
case hasFailure:
return StatusFailure
case hasWaiting:
return StatusWaiting
case hasFailure:
return StatusFailure
case hasBlocked:
return StatusBlocked
default:

2
models/actions/run_job_status_test.go

@ -64,7 +64,7 @@ func TestAggregateJobStatus(t *testing.T) { @@ -64,7 +64,7 @@ func TestAggregateJobStatus(t *testing.T) {
{[]Status{StatusFailure, StatusSuccess}, StatusFailure},
{[]Status{StatusFailure, StatusSkipped}, StatusFailure},
{[]Status{StatusFailure, StatusCancelled}, StatusCancelled},
{[]Status{StatusFailure, StatusWaiting}, StatusFailure},
{[]Status{StatusFailure, StatusWaiting}, StatusWaiting},
{[]Status{StatusFailure, StatusRunning}, StatusRunning},
{[]Status{StatusFailure, StatusBlocked}, StatusFailure},

Loading…
Cancel
Save