mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-08 18:04:14 +01:00
Fix possible ui 500 if workflow's job is nil (#31092)
Fix #31087 (cherry picked from commit e695ba47557ed4c3999c63b28051a449ca4653de)
This commit is contained in:
parent
9d4f0671f3
commit
9e495f700e
2 changed files with 9 additions and 0 deletions
|
@ -3724,6 +3724,7 @@ runs.workflow = Workflow
|
||||||
runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
|
runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
|
||||||
runs.no_matching_online_runner_helper = No matching online runner with label: %s
|
runs.no_matching_online_runner_helper = No matching online runner with label: %s
|
||||||
runs.no_job_without_needs = The workflow must contain at least one job without dependencies.
|
runs.no_job_without_needs = The workflow must contain at least one job without dependencies.
|
||||||
|
runs.no_job = The workflow must contain at least one job
|
||||||
runs.actor = Actor
|
runs.actor = Actor
|
||||||
runs.status = Status
|
runs.status = Status
|
||||||
runs.actors_no_select = All actors
|
runs.actors_no_select = All actors
|
||||||
|
|
|
@ -107,7 +107,12 @@ func List(ctx *context.Context) {
|
||||||
// The workflow must contain at least one job without "needs". Otherwise, a deadlock will occur and no jobs will be able to run.
|
// The workflow must contain at least one job without "needs". Otherwise, a deadlock will occur and no jobs will be able to run.
|
||||||
hasJobWithoutNeeds := false
|
hasJobWithoutNeeds := false
|
||||||
// Check whether have matching runner and a job without "needs"
|
// Check whether have matching runner and a job without "needs"
|
||||||
|
emptyJobsNumber := 0
|
||||||
for _, j := range wf.Jobs {
|
for _, j := range wf.Jobs {
|
||||||
|
if j == nil {
|
||||||
|
emptyJobsNumber++
|
||||||
|
continue
|
||||||
|
}
|
||||||
if !hasJobWithoutNeeds && len(j.Needs()) == 0 {
|
if !hasJobWithoutNeeds && len(j.Needs()) == 0 {
|
||||||
hasJobWithoutNeeds = true
|
hasJobWithoutNeeds = true
|
||||||
}
|
}
|
||||||
|
@ -131,6 +136,9 @@ func List(ctx *context.Context) {
|
||||||
if !hasJobWithoutNeeds {
|
if !hasJobWithoutNeeds {
|
||||||
workflow.ErrMsg = ctx.Locale.TrString("actions.runs.no_job_without_needs")
|
workflow.ErrMsg = ctx.Locale.TrString("actions.runs.no_job_without_needs")
|
||||||
}
|
}
|
||||||
|
if emptyJobsNumber == len(wf.Jobs) {
|
||||||
|
workflow.ErrMsg = ctx.Locale.TrString("actions.runs.no_job")
|
||||||
|
}
|
||||||
workflows = append(workflows, workflow)
|
workflows = append(workflows, workflow)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue