summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2021-02-22 15:41:06 +0100
committerMathieu Othacehe <othacehe@gnu.org>2021-02-23 09:45:09 +0100
commitbebcf97600b2fa65482ae8ee870800dafa34d3f8 (patch)
tree0d17f4b5c673df84838f49a85209d91006041035 /doc
parent602f86d60bfd29bc4fd7f86fd9f92a37c0497f55 (diff)
downloadguix-bebcf97600b2fa65482ae8ee870800dafa34d3f8.tar.gz
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.
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi62
1 files changed, 36 insertions, 26 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