mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	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">
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
							
								
								
									
										15
									
								
								models/migrations/v1_21/v275.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								models/migrations/v1_21/v275.go
									
									
									
									
									
										Normal file
									
								
							| @@ -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)) | ||||
| } | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user