diff options
author | Christopher Baines <mail@cbaines.net> | 2020-07-04 11:24:57 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-07-04 11:24:57 +0100 |
commit | ab432800d362b61ac1fce99b98c5b2bdccdfd293 (patch) | |
tree | 2c2e04518f221c14d5386847bd40f9135b9a1d4a /guix-build-coordinator/coordinator.scm | |
parent | 804edead119569296e090a3382b8769e48659be2 (diff) | |
download | build-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.scm | 20 |
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?)) |