diff options
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 25 |
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) |