diff options
author | yp05327 <576951401@qq.com> | 2024-01-19 23:05:49 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-19 14:05:49 +0000 |
commit | 07ba4d9f87cf21b7ce87158ae5651cae3bb35604 (patch) | |
tree | 904dfbc3abee4d273ec123c28a58675d415f9b3a /routers/web | |
parent | 461d8b53c2e51a8a6a1715ba40ac61d7e9f93971 (diff) | |
download | gitea-07ba4d9f87cf21b7ce87158ae5651cae3bb35604.tar.gz gitea-07ba4d9f87cf21b7ce87158ae5651cae3bb35604.zip |
Fix incorrect action duration time when rerun the job before executed once (#28364)
Fix #28323
Reason was mentioned here:
https://github.com/go-gitea/gitea/issues/28323#issuecomment-1841867298
### Changes: (maybe breaking)
We can rerun jobs in Gitea, so there will be some problems in
calculating duration time.
In this PR, I use the exist `Started` and `Stopped` column to record the
last run time instead of the total time,
and add a new `PreviousDuration` column to record the previous duration
time.
You can also check the cost time of last run:
![image](https://github.com/go-gitea/gitea/assets/18380374/2ca39145-2c92-401a-b78b-43164f7ae061)
Diffstat (limited to 'routers/web')
-rw-r--r-- | routers/web/repo/actions/view.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/routers/web/repo/actions/view.go b/routers/web/repo/actions/view.go index 1cdae32a32..9cda30d23d 100644 --- a/routers/web/repo/actions/view.go +++ b/routers/web/repo/actions/view.go @@ -279,6 +279,17 @@ func Rerun(ctx *context_module.Context) { return } + // reset run's start and stop time when it is done + if run.Status.IsDone() { + run.PreviousDuration = run.Duration() + run.Started = 0 + run.Stopped = 0 + if err := actions_model.UpdateRun(ctx, run, "started", "stopped", "previous_duration"); err != nil { + ctx.Error(http.StatusInternalServerError, err.Error()) + return + } + } + job, jobs := getRunJobs(ctx, runIndex, jobIndex) if ctx.Written() { return |