2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/guix-cuirass.git synced 2023-12-14 06:03:04 +01:00
guix-cuirass/README
Ludovic Courtès ee11ba1d93 Introduce concurrency with Fibers.
* 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'.
2018-01-22 23:39:51 +01:00

65 lines
1.7 KiB
Plaintext

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"