Fix schedule actions still running even if workflow disalbed (#26939)

Fix #26782
This commit is contained in:
Lunny Xiao 2023-09-07 10:25:46 +08:00 committed by GitHub
parent 1ee4882b88
commit d1dca38a2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -10,6 +10,7 @@ import (
actions_model "code.gitea.io/gitea/models/actions"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/timeutil"
webhook_module "code.gitea.io/gitea/modules/webhook"
@ -44,6 +45,10 @@ func startTasks(ctx context.Context) error {
return fmt.Errorf("find specs: %w", err)
}
if err := specs.LoadRepos(); err != nil {
return fmt.Errorf("LoadRepos: %w", err)
}
// Loop through each spec and create a schedule task for it
for _, row := range specs {
// cancel running jobs if the event is push
@ -59,6 +64,11 @@ func startTasks(ctx context.Context) error {
}
}
cfg := row.Repo.MustGetUnit(ctx, unit.TypeActions).ActionsConfig()
if cfg.IsWorkflowDisabled(row.Schedule.WorkflowID) {
continue
}
if err := CreateScheduleTask(ctx, row.Schedule); err != nil {
log.Error("CreateScheduleTask: %v", err)
return err