From d1dca38a2a92f59c7fd071f1f348caa264f18c62 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 7 Sep 2023 10:25:46 +0800 Subject: [PATCH] Fix schedule actions still running even if workflow disalbed (#26939) Fix #26782 --- services/actions/schedule_tasks.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/actions/schedule_tasks.go b/services/actions/schedule_tasks.go index 87131e0aab3c..12227377ab25 100644 --- a/services/actions/schedule_tasks.go +++ b/services/actions/schedule_tasks.go @@ -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