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 An association list of hooks. These provide a way to execute arbitrary
code upon certain events, like a build result being processed. 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}) @item @code{guile} (default: @code{guile-3.0-latest})
The Guile package with which to run the Guix Build Coordinator. 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-client-communication-uri-string
guix-build-coordinator-configuration-allocation-strategy guix-build-coordinator-configuration-allocation-strategy
guix-build-coordinator-configuration-hooks guix-build-coordinator-configuration-hooks
guix-build-coordinator-configuration-parallel-hooks
guix-build-coordinator-configuration-guile guix-build-coordinator-configuration-guile
guix-build-coordinator-service-type guix-build-coordinator-service-type
@ -155,6 +156,8 @@ (define-record-type* <guix-build-coordinator-configuration>
(default #~basic-build-allocation-strategy)) (default #~basic-build-allocation-strategy))
(hooks guix-build-coordinator-configuration-hooks (hooks guix-build-coordinator-configuration-hooks
(default '())) (default '()))
(parallel-hooks guix-build-coordinator-configuration-parallel-hooks
(default '()))
(guile guix-build-coordinator-configuration-guile (guile guix-build-coordinator-configuration-guile
(default guile-3.0-latest))) (default guile-3.0-latest)))
@ -246,6 +249,7 @@ (define* (make-guix-build-coordinator-start-script database-uri-string
agent-communication-uri-string agent-communication-uri-string
client-communication-uri-string client-communication-uri-string
(hooks '()) (hooks '())
(parallel-hooks '())
(guile guile-3.0)) (guile guile-3.0))
(program-file (program-file
"start-guix-build-coordinator" "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->uri
#$agent-communication-uri-string) #$agent-communication-uri-string)
#:client-communication-uri (string->uri #:client-communication-uri (string->uri
#$client-communication-uri-string))))) #$client-communication-uri-string)
#:parallel-hooks (list #$@parallel-hooks)))))
#:guile guile)) #:guile guile))
(define (guix-build-coordinator-shepherd-services config) (define (guix-build-coordinator-shepherd-services config)
@ -314,6 +319,7 @@ (define (guix-build-coordinator-shepherd-services config)
client-communication-uri-string client-communication-uri-string
allocation-strategy allocation-strategy
hooks hooks
parallel-hooks
guile) guile)
(list (list
(shepherd-service (shepherd-service
@ -331,6 +337,7 @@ (define (guix-build-coordinator-shepherd-services config)
#:client-communication-uri-string #:client-communication-uri-string
client-communication-uri-string client-communication-uri-string
#:hooks hooks #:hooks hooks
#:parallel-hooks parallel-hooks
#:guile guile)) #:guile guile))
#:user #$user #:user #$user
#:group #$group #:group #$group