From 1a00e20cba1f9820951b561adfe29b416c114fdc Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 24 Oct 2020 13:51:14 +0100 Subject: Extract out agents submitting log files So that this code can be retried if submitting the build result fails. --- guix-build-coordinator/agent.scm | 39 +++++++++++++++++++++++---------------- 1 file 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 -- cgit v1.2.3