From d6e100f6be15ec4cb5c3ae6bbd0fb06de7d0f475 Mon Sep 17 00:00:00 2001 From: Jason Song Date: Fri, 21 Oct 2022 16:15:59 +0800 Subject: [PATCH] fix: update run status --- models/bots/run.go | 6 +++++- models/bots/run_job.go | 8 ++++++++ modules/notification/bots/bots.go | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/models/bots/run.go b/models/bots/run.go index c3f10f7870..45eb7d675e 100644 --- a/models/bots/run.go +++ b/models/bots/run.go @@ -84,7 +84,11 @@ func (run *Run) LoadAttributes(ctx context.Context) error { } func (run *Run) TakeTime() time.Duration { - return run.Started.AsTime().Sub(run.Stopped.AsTime()) + started := run.Started.AsTime() + if run.Status.IsDone() { + return run.Stopped.AsTime().Sub(started) + } + return time.Since(started) } func updateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) error { diff --git a/models/bots/run_job.go b/models/bots/run_job.go index f4df80bfdd..611d2ca438 100644 --- a/models/bots/run_job.go +++ b/models/bots/run_job.go @@ -105,12 +105,20 @@ func UpdateRunJob(ctx context.Context, job *RunJob, cols ...string) error { return nil } + if job.RunID == 0 { + var err error + if job, err = GetRunJobByID(ctx, job.ID); err != nil { + return err + } + } + jobs, err := GetRunJobsByRunID(ctx, job.RunID) if err != nil { return err } runStatus := aggregateJobStatus(jobs) + run := &Run{ ID: job.RunID, Status: runStatus, diff --git a/modules/notification/bots/bots.go b/modules/notification/bots/bots.go index ef07f2323f..798b9270cf 100644 --- a/modules/notification/bots/bots.go +++ b/modules/notification/bots/bots.go @@ -25,6 +25,7 @@ import ( "code.gitea.io/gitea/modules/repository" "code.gitea.io/gitea/modules/setting" api "code.gitea.io/gitea/modules/structs" + "code.gitea.io/gitea/modules/timeutil" "github.com/nektos/act/pkg/jobparser" ) @@ -94,6 +95,7 @@ func notify(repo *repo_model.Repository, doer *user_model.User, payload, ref str Event: evt, EventPayload: payload, Status: bots_model.StatusWaiting, + Started: timeutil.TimeStampNow(), } if len(run.Title) > 255 { run.Title = run.Title[:255]