aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/coordinator.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r--guix-build-coordinator/coordinator.scm25
1 files changed, 11 insertions, 14 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm
index 9815565..e8d9c22 100644
--- a/guix-build-coordinator/coordinator.scm
+++ b/guix-build-coordinator/coordinator.scm
@@ -81,7 +81,7 @@
build-coordinator))
-(define* (submit-build build-coordinator derivation
+(define* (submit-build build-coordinator derivation-file
#:key
requested-uuid
(priority 0)
@@ -94,19 +94,18 @@
(not
(null? (datastore-list-builds-for-derivation
datastore
- (derivation-file-name derivation)))))
+ derivation-file))))
(define (build-for-output-already-exists?)
(any
- (match-lambda
- ((name . derivation-output)
- (let ((builds-for-output
- (datastore-list-builds-for-output
- datastore
- (derivation-output-path derivation-output))))
+ (lambda (output-details)
+ (let ((builds-for-output
+ (datastore-list-builds-for-output
+ datastore
+ (assq-ref output-details 'output))))
- (not (null? builds-for-output)))))
- (derivation-outputs derivation)))
+ (not (null? builds-for-output))))
+ (datastore-find-derivation-outputs datastore derivation-file)))
(if (and ignore-if-build-for-derivation-exists?
(build-for-derivation-exists?))
@@ -117,13 +116,11 @@
;; Actually create a build
(let ((uuid (or requested-uuid (random-v4-uuid))))
- (datastore-store-derivation datastore derivation)
-
(when ensure-all-related-derivation-outputs-have-builds?
(let ((derivations-lacking-builds
(datastore-list-related-derivations-with-no-build-for-outputs
datastore
- (derivation-file-name derivation))))
+ derivation-file)))
(for-each
(lambda (related-derivation)
(let ((related-uuid (random-v4-uuid)))
@@ -139,7 +136,7 @@
derivations-lacking-builds)))
(datastore-store-build datastore
- (derivation-file-name derivation)
+ derivation-file
uuid
priority)