aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-07-01 09:27:55 +0100
committerChristopher Baines <mail@cbaines.net>2022-07-01 09:45:28 +0100
commit09aeabb9d3cab042a52881b117f9f64a0f0e1651 (patch)
treecf754a55af6c7b440110d79de4c3b5a5a5b9dd18
parente17672797102936fd8ceec4c43a66d9f690fab73 (diff)
downloadguix-09aeabb9d3cab042a52881b117f9f64a0f0e1651.tar
guix-09aeabb9d3cab042a52881b117f9f64a0f0e1651.tar.gz
services: guix: Support guix-build-coordinator parallel hooks.
* gnu/services/guix.scm (guix-build-coordinator-configuration-parallel-hooks): New procedure. (make-guix-build-coordinator-start-script): Accept and use #:parallel-hooks. (guix-build-coordinator-shepherd-services): Pass parallel-hooks to make-guix-build-coordinator-start-script. * doc/guix.texi (Guix Build Coordinator): Document this new field.
-rw-r--r--doc/guix.texi5
-rw-r--r--gnu/services/guix.scm9
2 files changed, 13 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index b8c49099a4..814965b22c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -35106,6 +35106,11 @@ allocation plan in the database.
An association list of hooks. These provide a way to execute arbitrary
code upon certain events, like a build result being processed.
+@item @code{parallel-hooks} (default: @var{'()})
+Hooks can be configured to run in parallel. This parameter is an
+association list of hooks to do in parallel, where the key is the symbol
+for the hook and the value is the number of threads to run.
+
@item @code{guile} (default: @code{guile-3.0-latest})
The Guile package with which to run the Guix Build Coordinator.
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index ad7b020b69..c7dd7ec0ed 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -46,6 +46,7 @@
guix-build-coordinator-configuration-client-communication-uri-string
guix-build-coordinator-configuration-allocation-strategy
guix-build-coordinator-configuration-hooks
+ guix-build-coordinator-configuration-parallel-hooks
guix-build-coordinator-configuration-guile
guix-build-coordinator-service-type
@@ -155,6 +156,8 @@
(default #~basic-build-allocation-strategy))
(hooks guix-build-coordinator-configuration-hooks
(default '()))
+ (parallel-hooks guix-build-coordinator-configuration-parallel-hooks
+ (default '()))
(guile guix-build-coordinator-configuration-guile
(default guile-3.0-latest)))
@@ -246,6 +249,7 @@
agent-communication-uri-string
client-communication-uri-string
(hooks '())
+ (parallel-hooks '())
(guile guile-3.0))
(program-file
"start-guix-build-coordinator"
@@ -304,7 +308,8 @@
#:agent-communication-uri (string->uri
#$agent-communication-uri-string)
#:client-communication-uri (string->uri
- #$client-communication-uri-string)))))
+ #$client-communication-uri-string)
+ #:parallel-hooks (list #$@parallel-hooks)))))
#:guile guile))
(define (guix-build-coordinator-shepherd-services config)
@@ -314,6 +319,7 @@
client-communication-uri-string
allocation-strategy
hooks
+ parallel-hooks
guile)
(list
(shepherd-service
@@ -331,6 +337,7 @@
#:client-communication-uri-string
client-communication-uri-string
#:hooks hooks
+ #:parallel-hooks parallel-hooks
#:guile guile))
#:user #$user
#:group #$group