1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

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
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 @code{period} field; the value specified here is only used for
specifications that use the default @code{period} value, which is zero. 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}) @item @code{ttl} (default: @code{2592000})
Duration to keep build results' GC roots alive, in seconds. 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) @item @code{build-expiry} (default: 4 months)
Duration in seconds after which pending builds are canceled. This helps Duration in seconds after which pending builds are canceled. This helps
ensure that the backlog does not grow indefinitely. ensure that the backlog does not grow indefinitely.
@item @code{threads} (default: @code{#f}) @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}) @item @code{parameters} (default: @code{#f})
Read parameters from the given @var{parameters} file. The supported Read parameters from the given @var{parameters} file. The supported

View File

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

View File

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