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.
This commit is contained in:
Christopher Baines 2022-07-01 09:27:55 +01:00
parent e176727971
commit 09aeabb9d3
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577
2 changed files with 13 additions and 1 deletions

View file

@ -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.

View file

@ -46,6 +46,7 @@ (define-module (gnu services guix)
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 @@ (define-record-type* <guix-build-coordinator-configuration>
(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 @@ (define* (make-guix-build-coordinator-start-script database-uri-string
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 @@ (define* (make-guix-build-coordinator-start-script database-uri-string
#: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 @@ (define (guix-build-coordinator-shepherd-services config)
client-communication-uri-string
allocation-strategy
hooks
parallel-hooks
guile)
(list
(shepherd-service
@ -331,6 +337,7 @@ (define (guix-build-coordinator-shepherd-services config)
#:client-communication-uri-string
client-communication-uri-string
#:hooks hooks
#:parallel-hooks parallel-hooks
#:guile guile))
#:user #$user
#:group #$group