diff options
Diffstat (limited to 'gnu/services/cuirass.scm')
-rw-r--r-- | gnu/services/cuirass.scm | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 9de36eb1c9..83e63fe79c 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Mathieu Lirzin <[email protected]> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <[email protected]> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <[email protected]> ;;; Copyright © 2017, 2020 Mathieu Othacehe <[email protected]> ;;; Copyright © 2017 Jan Nieuwenhuizen <[email protected]> ;;; Copyright © 2018, 2019 Ricardo Wurmus <[email protected]> @@ -25,6 +25,7 @@ #:use-module (guix channels) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (guix store) #:use-module (guix utils) #:use-module (gnu packages admin) #:use-module (gnu packages ci) @@ -38,16 +39,13 @@ #:use-module (gnu system shadow) #:use-module (srfi srfi-1) #:use-module (ice-9 match) - #:export (<cuirass-remote-server-configuration> - cuirass-remote-server-configuration + #:export (cuirass-remote-server-configuration cuirass-remote-server-configuration? - <cuirass-configuration> cuirass-configuration cuirass-configuration? cuirass-service-type - <cuirass-remote-worker-configuration> cuirass-remote-worker-configuration cuirass-remote-worker-configuration? cuirass-remote-worker-service-type)) @@ -60,7 +58,7 @@ ;;;; Code: (define %cuirass-default-database - "dbname=cuirass host=/var/run/postgresql") + "dbname=cuirass host=/tmp") (define-record-type* <cuirass-remote-server-configuration> cuirass-remote-server-configuration make-cuirass-remote-server-configuration @@ -75,6 +73,8 @@ (default "/var/log/cuirass-remote-server.log")) (cache cuirass-remote-server-configuration-cache ;string (default "/var/cache/cuirass/remote/")) + (publish? cuirass-remote-server-configuration-publish? ;boolean + (default #t)) (trigger-url cuirass-remote-server-trigger-url ;string (default #f)) (public-key cuirass-remote-server-configuration-public-key ;string @@ -194,8 +194,8 @@ (stop #~(make-kill-destructor))) ,@(if remote-server (match-record remote-server <cuirass-remote-server-configuration> - (backend-port publish-port log-file cache trigger-url - public-key private-key) + (backend-port publish-port log-file cache publish? + trigger-url public-key private-key) (list (shepherd-service (documentation "Run Cuirass remote build server.") @@ -228,6 +228,9 @@ "--trigger-substitute-url=" trigger-url)) '()) + #$@(if publish? + '() + (list "--no-publish")) #$@(if public-key (list (string-append "--public-key=" @@ -272,6 +275,8 @@ remote-server))) (user (cuirass-configuration-user config)) (log "/var/log/cuirass") + (profile (string-append "/var/guix/profiles/per-user/" user)) + (roots (string-append profile "/cuirass")) (group (cuirass-configuration-group config))) (with-imported-modules '((guix build utils)) #~(begin @@ -279,6 +284,7 @@ (mkdir-p #$cache) (mkdir-p #$log) + (mkdir-p #$roots) (when #$remote-cache (mkdir-p #$remote-cache)) @@ -287,6 +293,8 @@ (gid (group:gid (getgr #$group)))) (chown #$cache uid gid) (chown #$log uid gid) + (chown #$roots uid gid) + (chown #$profile uid gid) (when #$remote-cache (chown #$remote-cache uid gid))))))) @@ -331,6 +339,8 @@ (default "/var/log/cuirass-remote-worker.log")) (publish-port cuirass-remote-worker-configuration-publish-port ;int (default 5558)) + (substitute-urls cuirass-remote-worker-configuration-substitute-urls + (default %default-substitute-urls)) ;list of strings (public-key cuirass-remote-worker-configuration-public-key ;string (default #f)) (private-key cuirass-remote-worker-configuration-private-key ;string @@ -341,7 +351,7 @@ CONFIG." (match-record config <cuirass-remote-worker-configuration> (cuirass workers server systems log-file publish-port - public-key private-key) + substitute-urls public-key private-key) (list (shepherd-service (documentation "Run Cuirass remote build worker.") (provision '(cuirass-remote-worker)) @@ -364,6 +374,11 @@ CONFIG." "--publish-port=" (number->string publish-port))) '()) + #$@(if substitute-urls + (list (string-append + "--substitute-urls=" + (string-join substitute-urls))) + '()) #$@(if public-key (list (string-append "--public-key=" |