aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/hooks.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-02-17 09:12:50 +0000
committerChristopher Baines <mail@cbaines.net>2021-02-17 09:12:50 +0000
commitc72d2a172fafa591da3b73274ed70723d5fbf360 (patch)
tree95b5aca6b38be60302e22fb1f5d0493fb80cbc94 /guix-build-coordinator/hooks.scm
parentb3733bca21de607fd7a70319e66e3ff49996a974 (diff)
downloadbuild-coordinator-c72d2a172fafa591da3b73274ed70723d5fbf360.tar
build-coordinator-c72d2a172fafa591da3b73274ed70723d5fbf360.tar.gz
Add a hook for determining whether agents should submit outputs
This should make it possible to check properly whether the outputs are needed, instead of just assuming they are not if there's been a successful build.
Diffstat (limited to 'guix-build-coordinator/hooks.scm')
-rw-r--r--guix-build-coordinator/hooks.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/guix-build-coordinator/hooks.scm b/guix-build-coordinator/hooks.scm
index a31b804..263d783 100644
--- a/guix-build-coordinator/hooks.scm
+++ b/guix-build-coordinator/hooks.scm
@@ -43,6 +43,7 @@
build-failure-retry-hook
build-recompress-log-file-hook
default-build-missing-inputs-hook
+ default-build-submit-outputs-hook
%default-hooks
@@ -416,13 +417,24 @@
missing-input)))))
missing-inputs)))
+(define (default-build-submit-outputs-hook build-coordinator build-id)
+ (define datastore
+ (build-coordinator-datastore build-coordinator))
+
+ (let* ((build (datastore-find-build datastore build-id))
+ (unbuilt-outputs (datastore-list-unbuilt-derivation-outputs
+ datastore
+ (assq-ref build 'derivation-name))))
+ (not (null? unbuilt-outputs))))
+
(define %default-hooks
`((build-submitted . ,default-build-submitted-hook)
(build-started . ,default-build-started-hook)
(build-success . ,default-build-success-hook)
(build-failure . ,default-build-failure-hook)
(build-canceled . ,default-build-canceled-hook)
- (build-missing-inputs . ,default-build-missing-inputs-hook)))
+ (build-missing-inputs . ,default-build-missing-inputs-hook)
+ (build-submit-outputs . ,default-build-submit-outputs-hook)))
(define (build-submitted-send-event-to-guix-data-service-hook target-url)
(lambda (build-coordinator build-id)