aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-10-24 13:51:14 +0100
committerChristopher Baines <mail@cbaines.net>2020-10-24 13:51:14 +0100
commit1a00e20cba1f9820951b561adfe29b416c114fdc (patch)
treeac712787a23426b4dd20623fc8984b262937bdf7
parent30290970b8a4e2da9b7e37daaebc349b050e2cc8 (diff)
downloadbuild-coordinator-1a00e20cba1f9820951b561adfe29b416c114fdc.tar
build-coordinator-1a00e20cba1f9820951b561adfe29b416c114fdc.tar.gz
Extract out agents submitting log files
So that this code can be retried if submitting the build result fails.
-rw-r--r--guix-build-coordinator/agent.scm39
1 files changed, 23 insertions, 16 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index c8a640a..747c6b1 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -69,23 +69,10 @@
(let* ((result (perform-build store derivation-name))
;; TODO Check this handles timezones right
(end-time (localtime (current-time) "UTC")))
- (retry-on-error
- (lambda ()
- (let ((log-file (derivation-log-file derivation-name)))
- (unless log-file
- (raise-exception
- (make-exception-with-message
- (simple-format #f "log file missing for ~A (~A)"
- derivation-name build-id))))
- (simple-format #t "~A: uploading log file ~A\n"
- build-id log-file)
- (submit-log-file
- coordinator-uri uuid password
- build-id
- log-file)))
- #:times 6
- #:delay 30)
+ (agent-submit-log-file uuid coordinator-uri password
+ build-id derivation-name)
+
((if result
post-build-success
post-build-failure)
@@ -123,6 +110,26 @@
jobs)))))
(sleep 5))))
+(define (agent-submit-log-file uuid coordinator-uri password
+ build-id derivation-name)
+ (retry-on-error
+ (lambda ()
+ (let ((log-file (derivation-log-file derivation-name)))
+ (unless log-file
+ (raise-exception
+ (make-exception-with-message
+ (simple-format #f "log file missing for ~A (~A)"
+ derivation-name build-id))))
+
+ (simple-format #t "~A: uploading log file ~A\n"
+ build-id log-file)
+ (submit-log-file
+ coordinator-uri uuid password
+ build-id
+ log-file)))
+ #:times 6
+ #:delay 30))
+
(define (pre-build-process store
derivation-substitute-urls
non-derivation-substitute-urls