aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-04-13 12:42:03 +0100
committerChristopher Baines <mail@cbaines.net>2020-04-13 12:42:03 +0100
commitc27c16cf00212d5f9f7c5146fb3d1604b44092e9 (patch)
treec7d79120d83015d88ad81eed73018ea98f1d238f /guix-build-coordinator/agent.scm
parentc623bcf70471a767ed75b6ae9e8ca1e0406c54c6 (diff)
downloadbuild-coordinator-c27c16cf00212d5f9f7c5146fb3d1604b44092e9.tar
build-coordinator-c27c16cf00212d5f9f7c5146fb3d1604b44092e9.tar.gz
Add initial support for sending/storing build outputs
Diffstat (limited to 'guix-build-coordinator/agent.scm')
-rw-r--r--guix-build-coordinator/agent.scm17
1 files changed, 16 insertions, 1 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index c5094d4..9c75253 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -22,6 +22,8 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (ice-9 match)
+ #:use-module (rnrs bytevectors)
+ #:use-module (web http)
#:use-module (guix store)
#:use-module (guix status)
#:use-module (guix derivations)
@@ -41,7 +43,10 @@
(for-each (lambda (build)
(let ((derivation-name (assoc-ref build "derivation-name")))
(pre-build-process derivation-name)
- (perform-build derivation-name)))
+ (let ((result (perform-build derivation-name)))
+ (post-build uuid coordinator-uri password
+ (assoc-ref build "uuid")
+ derivation-name))))
builds)))
(define (pre-build-process derivation-name)
@@ -93,3 +98,13 @@
#:use-substitutes? #f)
(build-things store (list derivation-name))))
+
+(define (post-build uuid coordinator-uri password
+ build-id derivation)
+ (for-each
+ (match-lambda
+ ((output-name . output)
+ (submit-output coordinator-uri uuid password
+ build-id output-name
+ (derivation-output-path output))))
+ (derivation-outputs (read-derivation-from-file derivation))))