aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/hooks.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-12-20 16:25:16 +0000
committerChristopher Baines <mail@cbaines.net>2020-12-20 16:25:16 +0000
commit09e51bd9de1dba9336641898e9d62d3cbf0ddc16 (patch)
tree70926fa6db9ea470aa80e7d5336a9e47eebfb511 /guix-build-coordinator/hooks.scm
parent021e6df8f69808740c531b963889217e22d1763e (diff)
downloadbuild-coordinator-09e51bd9de1dba9336641898e9d62d3cbf0ddc16.tar
build-coordinator-09e51bd9de1dba9336641898e9d62d3cbf0ddc16.tar.gz
Make the build-success-publish-hook behaviour more transactional
Diffstat (limited to 'guix-build-coordinator/hooks.scm')
-rw-r--r--guix-build-coordinator/hooks.scm15
1 files changed, 12 insertions, 3 deletions
diff --git a/guix-build-coordinator/hooks.scm b/guix-build-coordinator/hooks.scm
index 97f3311..f5abe6c 100644
--- a/guix-build-coordinator/hooks.scm
+++ b/guix-build-coordinator/hooks.scm
@@ -132,9 +132,18 @@
port)))
(when post-publish-hook
- (post-publish-hook publish-directory
- narinfo-filename
- nar-filename)))))
+ (with-exception-handler
+ (lambda (exn)
+ ;; Rollback narinfo creation, to make this more
+ ;; transactional
+ (delete-file narinfo-location)
+
+ (raise-exception exn))
+ (lambda ()
+ (post-publish-hook publish-directory
+ narinfo-filename
+ nar-filename))
+ #:unwind? #t)))))
(datastore-list-build-outputs datastore build-id)))))
(define* (build-success-s3-publish-hook