aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/coordinator.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-07-04 11:24:57 +0100
committerChristopher Baines <mail@cbaines.net>2020-07-04 11:24:57 +0100
commitab432800d362b61ac1fce99b98c5b2bdccdfd293 (patch)
tree2c2e04518f221c14d5386847bd40f9135b9a1d4a /guix-build-coordinator/coordinator.scm
parent804edead119569296e090a3382b8769e48659be2 (diff)
downloadbuild-coordinator-ab432800d362b61ac1fce99b98c5b2bdccdfd293.tar
build-coordinator-ab432800d362b61ac1fce99b98c5b2bdccdfd293.tar.gz
Don't skip inserting builds where the system doesn't match
Previously, some builds where skipped for things like fixed output derivations. If a aarch64-linux build already existed, the x86_64-linux build for the same output wouldn't be created. This has delayed some builds, because they're unnecessarily waiting.
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r--guix-build-coordinator/coordinator.scm20
1 files changed, 11 insertions, 9 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm
index bfbea73..1e54563 100644
--- a/guix-build-coordinator/coordinator.scm
+++ b/guix-build-coordinator/coordinator.scm
@@ -99,15 +99,17 @@
derivation-file))))
(define (build-for-output-already-exists?)
- (any
- (lambda (output-details)
- (let ((builds-for-output
- (datastore-list-builds-for-output
- datastore
- (assq-ref output-details 'output))))
-
- (not (null? builds-for-output))))
- (datastore-find-derivation-outputs datastore derivation-file)))
+ (let ((system (datastore-find-derivation-system datastore
+ derivation-file)))
+ (any
+ (lambda (output-details)
+ (let ((builds-for-output
+ (datastore-list-builds-for-output-and-system
+ datastore
+ (assq-ref output-details 'output)
+ system)))
+ (not (null? builds-for-output))))
+ (datastore-find-derivation-outputs datastore derivation-file))))
(if (and ignore-if-build-for-derivation-exists?
(build-for-derivation-exists?))