mirror of
git://git.savannah.gnu.org/guix/guix-cuirass.git
synced 2024-12-29 11:40:16 +01:00
Cuirass continuous integration tool
https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git
c6f4fa5f57
Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on until now: it maps JSON dictionaries to alists (instead of hash tables), and JSON arrays to vectors (instead of lists). This commit is about adjusting all the existing code to this new mapping. * src/cuirass/http.scm (evaluation->json-object): New procedure. (handle-builds-request): Pass the result through 'list->vector'. (handle-builds-search-request): Likewise. (url-handler): Likewise for /jobsets, /specifications, /api/evaluations, and /build. For /api/evaluations, use 'evaluation->json-object'. * src/cuirass/utils.scm (object->json-scm): Add 'vector?' case. * tests/http.scm (hash-table-keys, hash-table=?): Remove. (evaluations-query-result): Use vectors for JSON arrays. ("object->json-string"): Expects alists instead of hash tables. ("/build/1"): Use 'lset=' instead of 'hash-table=?'. ("/api/latestbuilds?nr=1&jobset=guix"): Likewise, and expect alists instead of hash tables. ("/api/latestbuilds?nr=1&jobset=gnu"): Likewise. ("/api/evaluations?nr=1"): Likewise. * README: Mention Guile-JSON 3.x. |
||
---|---|---|
bin | ||
build-aux | ||
doc | ||
examples | ||
src | ||
tests | ||
.dir-locals.el | ||
.gitignore | ||
bootstrap | ||
configure.ac | ||
COPYING | ||
Makefile.am | ||
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 3.x - 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 To start the web interface run: ./pre-inst-env cuirass --web Contributing ============ See the manual for useful hacking informations, by running info -f doc/cuirass.info "Contributing"