]> source.dussan.org Git - gitea.git/commitdiff
Fix schedule actions still running even if workflow disalbed (#26939)
authorLunny Xiao <xiaolunwen@gmail.com>
Thu, 7 Sep 2023 02:25:46 +0000 (10:25 +0800)
committerGitHub <noreply@github.com>
Thu, 7 Sep 2023 02:25:46 +0000 (10:25 +0800)
Fix #26782

services/actions/schedule_tasks.go

index 87131e0aab3cf961332456780e481073f309ea2b..12227377ab25b690325eeba16b5965c6f74e2d22 100644 (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