diff options
author | Christopher Baines <mail@cbaines.net> | 2020-10-24 13:51:14 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-10-24 13:51:14 +0100 |
commit | 1a00e20cba1f9820951b561adfe29b416c114fdc (patch) | |
tree | ac712787a23426b4dd20623fc8984b262937bdf7 | |
parent | 30290970b8a4e2da9b7e37daaebc349b050e2cc8 (diff) | |
download | build-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.scm | 39 |
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 |