services: cuirass: Add ‘build-expiry’ field.

* gnu/services/cuirass.scm (<cuirass-configuration>)[build-expiry]: New
field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.

Change-Id: I1f9e21368437fd8fc236719e32bad7656928c926
This commit is contained in:
Ludovic Courtès 2025-01-11 19:18:01 +01:00
parent 1326817ddd
commit d081b41d2e
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 14 additions and 1 deletions

View file

@ -35285,6 +35285,10 @@ Cuirass jobs.
@item @code{ttl} (default: @code{2592000})
Duration to keep build results' GC roots alive, in seconds.
@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.

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -103,6 +103,8 @@ (define-record-type* <cuirass-configuration>
(default 60))
(ttl cuirass-configuration-ttl ;integer
(default 2592000))
(build-expiry cuirass-configuration-build-expiry
(default (* 4 30 24 3600))) ;integer(seconds)
(threads cuirass-configuration-threads ;integer
(default #f))
(parameters cuirass-configuration-parameters ;string
@ -136,6 +138,7 @@ (define (cuirass-shepherd-service config)
(group (cuirass-configuration-group config))
(interval (cuirass-configuration-interval config))
(ttl (cuirass-configuration-ttl config))
(build-expiry (cuirass-configuration-build-expiry config))
(threads (cuirass-configuration-threads config))
(parameters (cuirass-configuration-parameters config))
(remote-server (cuirass-configuration-remote-server config))
@ -168,6 +171,12 @@ (define (cuirass-shepherd-service config)
(number->string ttl)
"s"))
'())
#$@(if build-expiry
(list (string-append
"--build-expiry="
(number->string build-expiry)
"s"))
'())
#$@(if threads
(list (string-append
"--threads="