Cuirass continuous integration tool
https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git
ee11ba1d93
* README: Mark Fibers as required. * configure.ac: Check for Guile 2.2 only. Check for (fibers). * bin/cuirass.in (main): Use (fibers). Run 'process-specs' and web server in separate fibers. * src/cuirass/base.scm (with-store): New macro. (non-blocking-port): New procedure. (evaluate): Use 'non-blocking-port'. Use 'read-string' followed by 'read'. (process-specs): Move 'db-add-stamp' right after 'string=?' comparison. Run evaluation and subsequent builds in a separate fiber. * src/cuirass/http.scm (run-cuirass-server): Pass 'fibers as the second argument to 'run-server'. Use 'log-message' instead of 'format'. * src/cuirass/database.scm (with-database): Remove 'dynamic-wind'. |
||
---|---|---|
bin | ||
build-aux | ||
doc | ||
examples | ||
src | ||
tests | ||
.dir-locals.el | ||
.gitignore | ||
COPYING | ||
Makefile.am | ||
README | ||
bootstrap | ||
configure.ac |
README
Cuirass is a continuous integration tool using GNU Guix. It is intended as a replacement for Hydra. Requirements ============ Cuirass currently depends on the following packages: - GNU Guile 2.0.9 or later - GNU Guix (and all its development dependencies) - GNU Make - Guile-JSON - Guile-SQLite3 - Guile-Git - Fibers A convenient way to install those dependencies is to install Guix and execute the following command: $ guix environment -l build-aux/guix.scm This will build and enter an environment which provides all the necessary dependencies. Build Instructions ================== When all the dependencies are available on you system, in order to build and install Cuirass, you can proceed with the usual: $ ./configure && sudo make install An alternative way is to directly install Cuirass in your Guix profile, using: $ guix package -f build-aux/guix.scm To build it, but not install it, run: $ guix build -f build-aux/guix.scm Example ======= A quick way to manually test Cuirass is to execute: ./pre-inst-env cuirass --specifications=examples/hello-singleton.scm --database=test.db This will read the file "examples/hello-singleton.scm" which contains a list of specifications and add them to the database "test.db" which is created if it doesn't already exist. 'cuirass' then loops evaluating/building the specs. The database keeps track of the specifications in order to allow users to accumulate specifications. To resume the evaluation/build process you can execute the same command without the '--specifications' option: ./pre-inst-env cuirass --database=test.db Contributing ============ See the manual for useful hacking informations, by running info -f doc/cuirass.info "Contributing"