aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-09-08 23:01:19 +0800
committerGitHub <noreply@github.com>2023-09-08 23:01:19 +0800
commit9c0a3532a4765263f279caeabd7f696372ce1d1f (patch)
tree4ed801ef304d923617af7733a6966f166bebc80e
parentffa4949eaaf645995c5a20cd302d0256417b97ed (diff)
downloadgitea-9c0a3532a4765263f279caeabd7f696372ce1d1f.tar.gz
gitea-9c0a3532a4765263f279caeabd7f696372ce1d1f.zip
Add a new column schedule_id for action_run to track (#26975)
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">
-rw-r--r--models/actions/run.go3
-rw-r--r--models/migrations/migrations.go2
-rw-r--r--models/migrations/v1_21/v275.go15
-rw-r--r--options/locale/locale_en-US.ini1
-rw-r--r--routers/api/actions/runner/runner.go8
-rw-r--r--services/actions/schedule_tasks.go14
-rw-r--r--templates/repo/actions/runs_list.tmpl14
7 files changed, 37 insertions, 20 deletions
diff --git a/models/actions/run.go b/models/actions/run.go
index 4853afc15b..8078613fb8 100644
--- a/models/actions/run.go
+++ b/models/actions/run.go
@@ -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
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index 40df1cd624..f0a8b05d53 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -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
index 0000000000..78804a59d6
--- /dev/null
+++ b/models/migrations/v1_21/v275.go
@@ -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))
+}
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index ea9f6147ae..39da4be179 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -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
diff --git a/routers/api/actions/runner/runner.go b/routers/api/actions/runner/runner.go
index 6de5964cb7..cb206f5685 100644
--- a/routers/api/actions/runner/runner.go
+++ b/routers/api/actions/runner/runner.go
@@ -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 {
diff --git a/services/actions/schedule_tasks.go b/services/actions/schedule_tasks.go
index 12227377ab..40b606c777 100644
--- a/services/actions/schedule_tasks.go
+++ b/services/actions/schedule_tasks.go
@@ -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
}
diff --git a/templates/repo/actions/runs_list.tmpl b/templates/repo/actions/runs_list.tmpl
index 37a584079f..961dd52c62 100644
--- a/templates/repo/actions/runs_list.tmpl
+++ b/templates/repo/actions/runs_list.tmpl
@@ -15,11 +15,15 @@
{{- .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">