From bebcf97600b2fa65482ae8ee870800dafa34d3f8 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 22 Feb 2021 15:41:06 +0100 Subject: services: cuirass: Improve simple-cuirass-services. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 * 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. --- doc/guix.texi | 62 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 26 deletions(-) (limited to 'doc') 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 -- cgit 1.4.1