aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2016-12-16 13:55:24 +0100
committerMathieu Lirzin <mthl@gnu.org>2016-12-16 14:07:31 +0100
commita6807cb29c1013851f62a0e32adc1b3dee66b270 (patch)
tree7a7a102a0fac1c43640a41a7273d13b5ef4e1328 /doc
parent97b707d32ab0a3c4fd841cd48f78e96da52ccde8 (diff)
downloadcuirass-a6807cb29c1013851f62a0e32adc1b3dee66b270.tar
cuirass-a6807cb29c1013851f62a0e32adc1b3dee66b270.tar.gz
doc: Add 'Overview' Chapter.
* doc/cuirass.texi (Overview): New chapter.
Diffstat (limited to 'doc')
-rw-r--r--doc/cuirass.texi44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/cuirass.texi b/doc/cuirass.texi
index eb59dd6..8233f6e 100644
--- a/doc/cuirass.texi
+++ b/doc/cuirass.texi
@@ -49,7 +49,13 @@ Documentation License''.
@c *********************************************************************
@menu
* Introduction:: What is Cuirass about?
+
+Tutorial sections:
+* Overview:: A quick tour of Cuirass
+
+Reference sections:
* Invocation:: How to run Cuirass.
+
* Contributing:: Your help needed!
* GNU Free Documentation License:: The license of this manual.
* Concept Index:: Concepts.
@@ -90,6 +96,44 @@ basis of the @dfn{Continuous integration} practice.
@unnumberedsec Continuous Integration
@c *********************************************************************
+@node Overview
+@chapter Overview
+
+@command{cuirass} acts as a daemon polling @acronym{VCS, version control
+system} repositories for changes, and evaluating a derivation when
+something has changed (@pxref{Derivations, Derivations,, guix, Guix}).
+As a final step the derivation is realised and the result of that build
+allows you to know if the job succeed or not.
+
+What is actually done by @command{cuirass} is specified in a @dfn{job
+specification} which is represented as an association list which is a
+basic and traditional Scheme data structure. Here is an example of what
+a specification might look like:
+
+@lisp
+ `((#:name . "hello")
+ (#:url . "git://git.savannah.gnu.org/guix.git")
+ (#:branch . "master")
+ (#:no-compile? . #t)
+ (#:load-path . ".")
+ (#:proc . cuirass-jobs)
+ (#:file . "/tmp/drv-file.scm")
+ (#:arguments (subset . "hello")))
+@end lisp
+
+In this specification the keys are Scheme keywords which have the nice
+property of being self evaluating. This means that they can't refer to
+another value like symbols do.
+
+Currently the only way to add those specifications to cuirass is to put
+a list of them in a file and set the @code{--specifications} command
+line option argument with the file name when launching the daemon
+(@pxref{Invocation}). The specifications are persistent (they are kept
+in a SQLite database) so the next time @command{cuirass} is run the
+previously added specifications will remain active even if you don't
+keep the @code{--specifications} option.
+
+@c *********************************************************************
@node Invocation
@chapter Invoking cuirass
@cindex invoking cuirass