]> source.dussan.org Git - gitea.git/commitdiff
Add a new column schedule_id for action_run to track (#26975)
authorLunny Xiao <xiaolunwen@gmail.com>
Fri, 8 Sep 2023 15:01:19 +0000 (23:01 +0800)
committerGitHub <noreply@github.com>
Fri, 8 Sep 2023 15:01:19 +0000 (23:01 +0800)
Fix #26971

And the UI now will display it's scheduled but not triggered by a push.

<img width="954" alt="图片"
src="https://github.com/go-gitea/gitea/assets/81045/d211845c-457e-4c3e-af1f-a0d654d3f365">

models/actions/run.go
models/migrations/migrations.go
models/migrations/v1_21/v275.go [new file with mode: 0644]
options/locale/locale_en-US.ini
routers/api/actions/runner/runner.go
services/actions/schedule_tasks.go
templates/repo/actions/runs_list.tmpl

index 4853afc15b09b3764a30952fe93a103aed47f892..8078613fb8f5ba6da545e91e4478d79dec6ed459 100644 (file)
@@ -35,7 +35,8 @@ type ActionRun struct {
        Index             int64                  `xorm:"index unique(repo_index)"` // a unique number for each run of a repository
        TriggerUserID     int64                  `xorm:"index"`
        TriggerUser       *user_model.User       `xorm:"-"`
-       Ref               string                 `xorm:"index"` // the commit/tag/… that caused the run
+       ScheduleID        int64
+       Ref               string `xorm:"index"` // the commit/tag/… that caused the run
        CommitSHA         string
        IsForkPullRequest bool                         // If this is triggered by a PR from a forked repository or an untrusted user, we need to check if it is approved and limit permissions when running the workflow.
        NeedApproval      bool                         // may need approval if it's a fork pull request
index 40df1cd624347c416148d2ccfcc7e312f0cec4dc..f0a8b05d5337dc45d37e014cf51017954707a291 100644 (file)
@@ -530,6 +530,8 @@ var migrations = []Migration{
        NewMigration("Add Action Schedule Table", v1_21.AddActionScheduleTable),
        // v274 -> v275
        NewMigration("Add Actions artifacts expiration date", v1_21.AddExpiredUnixColumnInActionArtifactTable),
+       // v275 -> v276
+       NewMigration("Add ScheduleID for ActionRun", v1_21.AddScheduleIDForActionRun),
 }
 
 // GetCurrentDBVersion returns the current db version
diff --git a/models/migrations/v1_21/v275.go b/models/migrations/v1_21/v275.go
new file mode 100644 (file)
index 0000000..78804a5
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2023 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package v1_21 //nolint
+
+import (
+       "xorm.io/xorm"
+)
+
+func AddScheduleIDForActionRun(x *xorm.Engine) error {
+       type ActionRun struct {
+               ScheduleID int64
+       }
+       return x.Sync(new(ActionRun))
+}
index ea9f6147ae292b21375597733793b8a186cb106d..39da4be17900e4ca934139e1bdb17213b3466249 100644 (file)
@@ -3504,6 +3504,7 @@ runners.reset_registration_token_success = Runner registration token reset succe
 
 runs.all_workflows = All Workflows
 runs.commit = Commit
+runs.scheduled = Scheduled
 runs.pushed_by = pushed by
 runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
 runs.no_matching_runner_helper = No matching runner: %s
index 6de5964cb77bccc20df65fd9681c920e411db6ff..cb206f56851731d838f52035cd24ba433c7129f0 100644 (file)
@@ -202,8 +202,14 @@ func (s *Service) UpdateTask(
        if err := task.LoadJob(ctx); err != nil {
                return nil, status.Errorf(codes.Internal, "load job: %v", err)
        }
+       if err := task.Job.LoadRun(ctx); err != nil {
+               return nil, status.Errorf(codes.Internal, "load run: %v", err)
+       }
 
-       actions_service.CreateCommitStatus(ctx, task.Job)
+       // don't create commit status for cron job
+       if task.Job.Run.ScheduleID == 0 {
+               actions_service.CreateCommitStatus(ctx, task.Job)
+       }
 
        if req.Msg.State.Result != runnerv1.Result_RESULT_UNSPECIFIED {
                if err := actions_service.EmitJobsIfReady(task.Job.RunID); err != nil {
index 12227377ab25b690325eeba16b5965c6f74e2d22..40b606c77742973c030dd9212779aca63680be31 100644 (file)
@@ -113,6 +113,7 @@ func CreateScheduleTask(ctx context.Context, cron *actions_model.ActionSchedule)
                CommitSHA:     cron.CommitSHA,
                Event:         cron.Event,
                EventPayload:  cron.EventPayload,
+               ScheduleID:    cron.ID,
                Status:        actions_model.StatusWaiting,
        }
 
@@ -127,19 +128,6 @@ func CreateScheduleTask(ctx context.Context, cron *actions_model.ActionSchedule)
                return err
        }
 
-       // Retrieve the jobs for the newly created action run
-       jobs, _, err := actions_model.FindRunJobs(ctx, actions_model.FindRunJobOptions{RunID: run.ID})
-       if err != nil {
-               return err
-       }
-
-       // Create commit statuses for each job
-       for _, job := range jobs {
-               if err := createCommitStatus(ctx, job); err != nil {
-                       return err
-               }
-       }
-
        // Return nil if no errors occurred
        return nil
 }
index 37a584079fb808665cdb86ef56a9fb56f96ff9d5..961dd52c62121bd624381dab4b368f05e93f31d5 100644 (file)
                                        {{- .Title -}}
                                </a>
                                <div class="flex-item-body">
-                                       <b>{{if not $.CurWorkflow}}{{.WorkflowID}} {{end}}#{{.Index}}</b>
-                                       : {{$.locale.Tr "actions.runs.commit"}}
-                                       <a href="{{$.RepoLink}}/commit/{{.CommitSHA}}">{{ShortSha .CommitSHA}}</a>
-                                       {{$.locale.Tr "actions.runs.pushed_by"}}
-                                       <a href="{{.TriggerUser.HomeLink}}">{{.TriggerUser.GetDisplayName}}</a>
+                                       <b>{{if not $.CurWorkflow}}{{.WorkflowID}} {{end}}#{{.Index}}</b>:
+                                       {{- if .ScheduleID -}}
+                                               {{$.locale.Tr "actions.runs.scheduled"}}
+                                       {{- else -}}
+                                               {{$.locale.Tr "actions.runs.commit"}}
+                                               <a href="{{$.RepoLink}}/commit/{{.CommitSHA}}">{{ShortSha .CommitSHA}}</a>
+                                               {{$.locale.Tr "actions.runs.pushed_by"}}
+                                               <a href="{{.TriggerUser.HomeLink}}">{{.TriggerUser.GetDisplayName}}</a>
+                                       {{- end -}}
                                </div>
                        </div>
                        <div class="flex-item-trailing">