services: cuirass: Add more configuration fields.

* gnu/services/cuirass.scm (<cuirass-configuration>)[parallel-evaluations]
[evaluation-ttl, web-threads]: New fields.
(cuirass-shepherd-service): Honor them.
* doc/guix.texi (Continuous Integration): Document them.

Change-Id: I33485b978d2a37ee93230b1d425731e6cb3b80e4
This commit is contained in:
Ludovic Courtès 2025-09-05 17:18:18 +02:00
parent 577f8fe184
commit d72eef9c91
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 48 additions and 6 deletions

View file

@ -37863,15 +37863,27 @@ Note that individual jobset specifications may override this in their
@code{period} field; the value specified here is only used for
specifications that use the default @code{period} value, which is zero.
@item @code{parallel-evaluations} (default: @code{#f})
Maximum number of jobset evaluations that may run concurrently. If
@code{#f}, that number is determined based on a number of CPU cores,
with an upper bound of 8.
@item @code{ttl} (default: @code{2592000})
Duration to keep build results' GC roots alive, in seconds.
@item @code{evaluation-ttl} (default: 24 months)
Number of seconds after which an evaluation may be deleted from the
database.
@item @code{build-expiry} (default: 4 months)
Duration in seconds after which pending builds are canceled. This helps
ensure that the backlog does not grow indefinitely.
@item @code{threads} (default: @code{#f})
Number of kernel threads to use for Cuirass. The default value should be appropriate for most cases.
@itemx @code{web-threads} (default: @code{#f})
Number of kernel threads to use for Cuirass (main process) and for the
web interface (the @command{cuirass web} program). The default value
should be appropriate for most cases.
@item @code{parameters} (default: @code{#f})
Read parameters from the given @var{parameters} file. The supported

View file

@ -101,12 +101,18 @@
(default "cuirass"))
(interval cuirass-configuration-interval ;integer (seconds)
(default 300))
(ttl cuirass-configuration-ttl ;integer
(parallel-evaluations cuirass-configuration-parallel-evaluations
(default #f)) ;integer | #f
(ttl cuirass-configuration-ttl ;integer
(default 2592000))
(evaluation-ttl cuirass-configuration-evaluation-ttl
(default (* 24 30 24 3600))) ;integer (seconds)
(build-expiry cuirass-configuration-build-expiry
(default (* 4 30 24 3600))) ;integer(seconds)
(threads cuirass-configuration-threads ;integer
(default #f))
(web-threads cuirass-configuration-web-threads ;integer | #f
(default #f))
(parameters cuirass-configuration-parameters ;string
(default #f))
(remote-server cuirass-configuration-remote-server
@ -145,9 +151,12 @@
(user (cuirass-configuration-user config))
(group (cuirass-configuration-group config))
(interval (cuirass-configuration-interval config))
(parallel-evaluations (cuirass-configuration-parallel-evaluations config))
(ttl (cuirass-configuration-ttl config))
(evaluation-ttl (cuirass-configuration-evaluation-ttl config))
(build-expiry (cuirass-configuration-build-expiry config))
(threads (cuirass-configuration-threads config))
(web-threads (cuirass-configuration-web-threads config))
(parameters (cuirass-configuration-parameters config))
(remote-server (cuirass-configuration-remote-server config))
(database (cuirass-configuration-database config))
@ -173,12 +182,23 @@
"--specifications" #$config-file
"--database" #$database
"--interval" #$(number->string interval)
#$@(if parallel-evaluations
(list (string-append
"--parallel-evaluations="
(number->string evaluation-ttl)))
'())
#$@(if ttl
(list (string-append
"--ttl="
(number->string ttl)
"s"))
'())
#$@(if evaluation-ttl
(list (string-append
"--evaluation-ttl="
(number->string evaluation-ttl)
"s"))
'())
#$@(if build-expiry
(list (string-append
"--build-expiry="
@ -232,6 +252,10 @@
"--database" #$database
"--listen" #$host
"--port" #$(number->string port)
#$@(if web-threads
(list #~(string-append "--threads="
#$web-threads))
'())
#$@(if parameters
(list #~(string-append "--parameters="
#$parameters))

View file

@ -3,8 +3,8 @@
;; for a "bare bones" setup, with no X11 display server.
(use-modules (gnu))
(use-service-modules networking ssh)
(use-package-modules screen ssh)
(use-service-modules cuirass networking ssh databases)
(use-package-modules databases screen ssh)
(operating-system
(host-name "komputilo")
@ -48,8 +48,14 @@
;; Add services to the baseline: a DHCP client and an SSH
;; server. You may wish to add an NTP service here.
(services (append (list (service dhcpcd-service-type)
(service cuirass-service-type
(cuirass-configuration
(specifications #~(list))))
(service postgresql-service-type
(postgresql-configuration
(postgresql postgresql-14)))
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
(port-number 2222))))
(openssh openssh-sans-x)
(port-number 2222))))
%base-services)))