aboutsummaryrefslogtreecommitdiffstats
path: root/routers/web
diff options
context:
space:
mode:
authoryp05327 <576951401@qq.com>2024-01-19 23:05:49 +0900
committerGitHub <noreply@github.com>2024-01-19 14:05:49 +0000
commit07ba4d9f87cf21b7ce87158ae5651cae3bb35604 (patch)
tree904dfbc3abee4d273ec123c28a58675d415f9b3a /routers/web
parent461d8b53c2e51a8a6a1715ba40ac61d7e9f93971 (diff)
downloadgitea-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.go11
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