aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/builds.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/builds.scm')
-rw-r--r--guix-data-service/builds.scm25
1 files changed, 16 insertions, 9 deletions
diff --git a/guix-data-service/builds.scm b/guix-data-service/builds.scm
index 4ac42fb..e8b9d68 100644
--- a/guix-data-service/builds.scm
+++ b/guix-data-service/builds.scm
@@ -35,14 +35,16 @@
build-status-strings
'("scheduled" "started")))
- (let ((status-string
- (assq-ref build-statuses
- (assoc-ref data "buildstatus")))
- (existing-status-entries
- (map second
- (select-build-statuses-by-build-id conn
- build-id
- build-server-id)))
+ (let* ((status-string
+ (assq-ref build-statuses
+ (assoc-ref data "buildstatus")))
+ (finished?
+ (member status-string stop-statuses))
+ (existing-status-entries
+ (map second
+ (select-build-statuses-by-build-id conn
+ build-id
+ build-server-id)))
(timestamp
(assoc-ref data "timestamp"))
(starttime
@@ -55,7 +57,12 @@
(filter
list?
(list
- (unless (member "scheduled" existing-status-entries)
+ (when (and
+ ;; Cuirass returns the stoptime as the timestamp if the
+ ;; build has finished, so only use the timestamp if the
+ ;; build hasn't finished.
+ (not finished?)
+ (not (member "scheduled" existing-status-entries)))
(list timestamp "scheduled"))
(when (and (< 0 starttime)
(not (member "started" existing-status-entries)))