aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/hooks.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-04-16 21:42:26 +0100
committerChristopher Baines <mail@cbaines.net>2020-04-16 21:42:26 +0100
commit6ddf31cfbb963faa61f078538e5890d6cb656467 (patch)
treef849e8f8fe81a30b73c663321bd748b266e0a2a1 /guix-build-coordinator/hooks.scm
parente89225ea04c03020c03b0d3b20ddc201e593f8db (diff)
downloadbuild-coordinator-6ddf31cfbb963faa61f078538e5890d6cb656467.tar
build-coordinator-6ddf31cfbb963faa61f078538e5890d6cb656467.tar.gz
Implement a couple of basic hooks
This allows configurable code to be executed when builds succeed or fail.
Diffstat (limited to 'guix-build-coordinator/hooks.scm')
-rw-r--r--guix-build-coordinator/hooks.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/guix-build-coordinator/hooks.scm b/guix-build-coordinator/hooks.scm
new file mode 100644
index 0000000..ed0b890
--- /dev/null
+++ b/guix-build-coordinator/hooks.scm
@@ -0,0 +1,42 @@
+;;; Guix Build Coordinator
+;;;
+;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
+;;;
+;;; This file is part of the guix-build-coordinator.
+;;;
+;;; The Guix Build Coordinator is free software; you can redistribute
+;;; it and/or modify it under the terms of the GNU General Public
+;;; License as published by the Free Software Foundation; either
+;;; version 3 of the License, or (at your option) any later version.
+;;;
+;;; The Guix Build Coordinator is distributed in the hope that it will
+;;; be useful, but WITHOUT ANY WARRANTY; without even the implied
+;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+;;; See the GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with the guix-data-service. If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+(define-module (guix-build-coordinator hooks)
+ #:use-module (guix-build-coordinator datastore)
+ #:export (default-build-success-hook
+ default-build-failure-hook))
+
+(define (default-build-success-hook datastore build-id)
+ (let ((agent-id
+ (datastore-agent-for-build datastore build-id)))
+ (display
+ (simple-format #f
+ "build ~A succeeded (on agent ~A)\n"
+ build-id agent-id)
+ (current-error-port))))
+
+(define* (default-build-failure-hook datastore build-id)
+ (let ((agent-id
+ (datastore-agent-for-build datastore build-id)))
+ (display
+ (simple-format #f
+ "build ~A failed (on agent ~A)\n"
+ build-id agent-id)
+ (current-error-port))))