diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2021-02-22 15:41:06 +0100 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2021-02-23 09:45:09 +0100 |
commit | bebcf97600b2fa65482ae8ee870800dafa34d3f8 (patch) | |
tree | 0d17f4b5c673df84838f49a85209d91006041035 | |
parent | 602f86d60bfd29bc4fd7f86fd9f92a37c0497f55 (diff) |
services: cuirass: Improve simple-cuirass-services.
Instead of returning multiple services in simple-cuirass-services, rely on the
instantiate-missing-services procedure to instantiate postgresql and
postgresql-role-service-type when missing.
Turn simple-cuirass-services procedure into
simple-cuirass-configuration->specs, that takes a simple-cuirass-configuration
record and returns a Cuirass specification.
Suggested-by: Ludovic Courtès <ludo@gnu.org>
* gnu/services/cuirass.scm (%default-cuirass-config): Remove it.
(simple-cuirass-services): Rename it to ...
(simple-cuirass-configuration->specs): ... this procedure.
* gnu/tests/cuirass.scm (cuirass-services): Remove postgresql and
postgresql-role services that are automatically instantiated.
(simple-cuirass-service): New variable.
(%cuirass-simple-test): Adapt it to use simple-cuirass-configuration->specs
instead of simple-cuirass-services.
* doc/guix.texi (Simple Cuirass): Update it.
-rw-r--r-- | doc/guix.texi | 62 | ||||
-rw-r--r-- | gnu/services/cuirass.scm | 22 | ||||
-rw-r--r-- | gnu/tests/cuirass.scm | 33 |
3 files changed, 56 insertions, 61 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 5f55853159..1a467ce473 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -27145,11 +27145,15 @@ The Cuirass package to use. @subsubheading Simple Cuirass The Cuirass service configuration described above can be a little -intimidating. The @code{simple-cuirass-services} procedure offers a way -to setup a continuous integration server more readily. - -It takes a @code{simple-cuirass-configuration} record as its first -argument. +intimidating. In particular, getting the right @code{specifications} +can prove difficult. The @code{simple-cuirass-configuration->specs} +procedure offers a way to generate those @code{specifications} and thus +setup a continuous integration server more readily. + +@deffn {Scheme Procedure} simple-cuirass-configuration->specs @var{configuration} +This procedure takes a @code{simple-cuirass-configuration} record as +argument and returns the corresponding Cuirass specifications gexp. +@end deffn @deftp {Data Type} simple-cuirass-configuration Data type representing the configuration of a simple Cuirass instance. @@ -27195,13 +27199,16 @@ is re-evaluated each time a commit is pushed in one of the declared channels. @lisp -(simple-cuirass-services - (simple-cuirass-configuration - (build 'all) - (channels (cons (channel - (name 'my-guix) - (url "https://my-git-repo/guix.git")) - %default-channels)))) +(service cuirass-service-type + (cuirass-configuration + (specifications + (simple-cuirass-configuration->specs + (simple-cuirass-configuration + (build 'all) + (channels (cons (channel + (name 'my-guix) + (url "https://my-git-repo/guix.git")) + %default-channels))))))) @end lisp In the same spirit, this builds all the packages that are part of the @@ -27209,20 +27216,23 @@ In the same spirit, this builds all the packages that are part of the located in the @code{conf} channel. @lisp -(simple-cuirass-services - (simple-cuirass-configuration - (build (list - (build-manifest - (channel-name 'conf) - (manifest "guix/manifest.scm")))) - (channels (cons* (channel - (name 'my-guix) - (url "https://my-git-repo/guix.git")) - (channel - (name 'conf) - (url "https://my-git-repo/conf.git")) - %default-channels)) - (non-package-channels '(conf)))) +(service cuirass-service-type + (cuirass-configuration + (specifications + (simple-cuirass-configuration->specs + (simple-cuirass-configuration + (build (list + (build-manifest + (channel-name 'conf) + (manifest "guix/manifest.scm")))) + (channels (cons* (channel + (name 'my-guix) + (url "https://my-git-repo/guix.git")) + (channel + (name 'conf) + (url "https://my-git-repo/conf.git")) + %default-channels)) + (non-package-channels '(conf))))))) @end lisp Finally, @code{simple-cuirass-services} takes as a second optional diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 18163b59e2..b962f2f80a 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -60,8 +60,7 @@ simple-cuirass-configuration simple-cuirass-configuration? - %default-cuirass-config - simple-cuirass-services)) + simple-cuirass-configuration->specs)) ;;;; Commentary: ;;; @@ -419,13 +418,7 @@ CONFIG." (systems simple-cuirass-configuration-systems (default (list (%current-system))))) ;list of strings -(define %default-cuirass-config - (cuirass-configuration - (specifications #~()))) - -(define* (simple-cuirass-services config - #:optional - (cuirass %default-cuirass-config)) +(define* (simple-cuirass-configuration->specs config) (define (format-name name) (if (string? name) name @@ -475,13 +468,4 @@ CONFIG." (#:build-outputs . ()) (#:priority . 1)))) - (list - (service cuirass-service-type - (cuirass-configuration - (inherit cuirass) - (specifications #~(list - '#$(config->spec config))))) - (service postgresql-service-type - (postgresql-configuration - (postgresql postgresql-10))) - (service postgresql-role-service-type))) + #~(list '#$(config->spec config))) diff --git a/gnu/tests/cuirass.scm b/gnu/tests/cuirass.scm index 22eab3c456..e833a047ad 100644 --- a/gnu/tests/cuirass.scm +++ b/gnu/tests/cuirass.scm @@ -132,11 +132,7 @@ (remote-server (and remote-build? (cuirass-remote-server-configuration))) (host "0.0.0.0") - (use-substitutes? #t))) - (service postgresql-service-type - (postgresql-configuration - (postgresql postgresql-10))) - (service postgresql-role-service-type))) + (use-substitutes? #t))))) (define (run-cuirass-test name os) (define os* @@ -286,6 +282,20 @@ (description "Connect to a Cuirass server with remote build.") (value (run-cuirass-test name os))))) +(define simple-cuirass-service + (service cuirass-service-type + (cuirass-configuration + (specifications + (simple-cuirass-configuration->specs + (simple-cuirass-configuration + (build 'all) + (channels + (list (channel + (name 'guix) + (url "file:///tmp/cuirass-main/"))))))) + (host "0.0.0.0") + (use-substitutes? #t)))) + (define %cuirass-simple-test (let ((os (operating-system (inherit %simple-os) @@ -293,17 +303,8 @@ (append (list cow-service (service dhcp-client-service-type) - git-service) - (simple-cuirass-services - (simple-cuirass-configuration - (build 'all) - (channels (list (channel - (name 'guix) - (url "file:///tmp/cuirass-main/"))))) - (cuirass-configuration - (inherit %default-cuirass-config) - (host "0.0.0.0") - (use-substitutes? #t))) + git-service + simple-cuirass-service) (operating-system-user-services %simple-os)))))) (system-test (name "cuirass-simple") |