From f9d3268dbe3817e25b784b95c25a11822f96632a Mon Sep 17 00:00:00 2001 From: silverwind Date: Tue, 15 Sep 2026 21:33:17 +0200 Subject: [PATCH] fix(actions): never show negative running durations (#39322) --- models/actions/utils.go | 2 +- models/actions/utils_test.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/models/actions/utils.go b/models/actions/utils.go index 25b6532972b..77c06a94227 100644 --- a/models/actions/utils.go +++ b/models/actions/utils.go @@ -87,7 +87,7 @@ func calculateDuration(started, stopped timeutil.TimeStamp, status Status, fallb } return end.AsTime().Sub(s) } - return timeSince(s).Truncate(time.Second) + return max(timeSince(s), 0).Truncate(time.Second) } // best effort function to convert an action schedule to action run, to be used in GenerateGiteaContext diff --git a/models/actions/utils_test.go b/models/actions/utils_test.go index c83173e81ea..4ccffa4c0c0 100644 --- a/models/actions/utils_test.go +++ b/models/actions/utils_test.go @@ -73,6 +73,14 @@ func Test_calculateDuration(t *testing.T) { }, want: 500 * time.Second, }, + { + name: "running started in the future", + args: args{ + started: 1005, + status: StatusRunning, + }, + want: 0, + }, { name: "done", args: args{