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