Commit Graph

120 Commits (cbdb59af8e7a1b40d687f80e62c5892686d384d2)

Author SHA1 Message Date
Mathieu Lirzin cbdb59af8e
doc: Add Cuirass manual.
* doc/cuirass.texi: New file.
* doc/fdl-1.3.texi: Likewise.
* Makefile.am (info_TEXINFOS, doc_cuirass_TEXINFOS): New variables.
* dir-locals.el: Use the American dictionary for Texinfo mode.
* .gitignore: Update.
2016-12-04 22:31:03 +01:00
Mathieu Lirzin 05eba838ea
base: Create the parent directories of '%package-cachedir'.
* src/cuirass/base.scm (fetch-repository): Use 'mkdir-p' instead of 'mkdir'
for 'cachedirectory'.
2016-12-01 20:59:43 +01:00
Mathieu Lirzin 7248c0038f
build: Unquote local load paths.
* Makefile.am (local_load_path, local_load_compiled_path): Remove quotes that
were expanded in the generated files.
2016-11-29 18:49:43 +01:00
Mathieu Lirzin 81ff83354e
build: Remove duplicate sed expression.
* Makefile.am (do_subst): Remove duplicate line.
2016-11-17 01:19:05 +01:00
Mathieu Lirzin 5898e6f8f8
base: Use inner definitions instead of big anonymous procedures.
* src/cuirass/base.scm (build-packages, process-specs): Use an inner
definition instead of a big anonymous procedure.
2016-11-17 01:19:05 +01:00
Mathieu Lirzin bfd395c09f
db: Forbid inserting the same specification twice.
* src/schema.sql (Specifications): Make 'repo_name' the primary key.
(Stamps, Evaluations): Adapt.
* src/cuirass/database.scm (db-get-specifications): Likewise.
(db-add-specification): Ignore if SPEC has already been added.
* tests/database.scm (example-spec): Adapt.
2016-11-17 01:19:05 +01:00
Mathieu Lirzin a948f556eb
build: Use BUILT_SOURCES to avoid recompilation.
Before that, modifying 'src/cuirass/config.scm' was triggering the
recompilation of all modules which was unnecessary.

* Makefile.am (go_files, $(go_files)): Delete.
(BUILT_SOURCES): New variable.
2016-11-17 01:19:04 +01:00
Mathieu Lirzin 05e5495e8f
maint: Add copyright notices for the build system.
* configure.ac: Add copyright notice.
* Makefile.am: Likewise.
2016-11-12 17:58:17 +01:00
Mathieu Lirzin 4f0d665746
cuirass: Hard code Guile load paths.
* configure.ac (bin/cuirass, bin/evaluate): Let 'make' generate them.
* bin/cuirass.in: Hard code load paths to find Cuirass modules.
* Makefile.am (do_subst): Update substitution.
(bin/cuirass, bin/evaluate): New rules.
(EXTRA_DIST): Distribute 'bin/cuirass.in' and 'bin/evaluate.in'.
(MOSTLYCLEANFILES): Add '$(bin_SCRIPTS)'.
(install-exec-hook): New target.
(local_load_path, local_load_compiled_path): New variables.
(AM_TESTS_ENVIRONMENT): Set Guile load paths.
* build-aux/pre-inst-env.in: Don't modify Guile load paths.
2016-11-12 17:49:20 +01:00
Mathieu Lirzin 1e5012ca80
build: Let 'make' generate 'src/cuirass/config.scm'.
* Makefile.am (src/cuirass/config.scm, $(go_files)): New targets.
(do_subst, generate_file, go_files): New variables.
(EXTRA_DIST): Distribute 'src/cuirass/config.scm.in'.
(DISTCLEANFILES): Rename to ...
(MOSTLYCLEANFILES): ... this.
* configure.ac (AC_CONFIG_FILES): Remove 'src/cuirass/config.scm'.
(@expanded_datadir@, @expanded_localstatedir@): Delete.
(AC_PROG_MKDIR_P, AC_PROG_SED): Use them.
* src/cuirass/config.scm (%datadir): Set it to $(localstatedir).
(%localstatdir): Set it to $(datadir).
2016-11-12 17:07:57 +01:00
Mathieu Lirzin 12d71ee098
cuirass: Run HTTP server.
* src/cuirass.scm: Re-export (cuirass http) module.
* bin/cuirass.in (main): Run HTTP server and move the 'process-specs'
loop in another thread.
2016-11-03 00:20:27 +01:00
Mathieu Lirzin 5973db52c6
http: Add DB argument to 'url-handler'.
* src/cuirass/http.scm (not-found): Delete.
(url-handler): Add DB argument.
(run-cuirass-server): Likewise.  Pass it to 'run-server' STATE argument.
2016-11-03 00:20:27 +01:00
Mathieu Lirzin 3b72a158be
cuirass: Check specifications from the database inside the loop.
* bin/cuirass (main): Remove 'let' before main loop.
2016-11-03 00:20:06 +01:00
Roel Janssen 24d4505507
maint: Update README.
* README: Slightly change wording.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
2016-10-26 14:16:36 +02:00
Mathieu Lirzin 7f894427b2
maint: Use absolute directory names in GUIX_PACKAGE_PATH.
This fixes "tests/hello-singleton.scm" evaluation.

* build-aux/pre-inst-env.in (GUIX_PACKAGE_PATH): Use absolute directory
names.
2016-10-23 00:11:43 +02:00
Jan Nieuwenhuizen 686e31c590
base: Handle build failure.
* src/cuirass/base.scm (build-packages): Catch build failures, write
error log and update database.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
2016-09-23 16:53:40 +02:00
Jan Nieuwenhuizen f65c62e53a
tests: Track Cuirass' git.
* guix.scm: New file; specify Guix package.
* guix/ci.scm: New file; expose to Guix.
* build-aux/pre-inst-env.in: Add it to GUIX_PACKAGE_PATH.
* bin/evaluate.in (main): Lookup proc using name specified by #:proc.
* tests/guix-track-git.scm: New file.
* tests/hello-git.scm: Test it.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
2016-09-23 16:53:07 +02:00
Jan Nieuwenhuizen 5ef0701f54
base: Support tracking of a Guix package's git.
* src/schema.sql (Specifications): Add no_compile_p column.
* src/cuirass/database.scm (db-add-specification)
(db-get-specifications): Handle #:no-compile? property.
* tests/database.scm (example-spec): Adapt.
* src/cuirass/base.scm (process-specs): Skip compilation if #:no-compile?.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
2016-09-23 16:50:36 +02:00
Jan Nieuwenhuizen fca42b010e
cuirass: Optionally support using of substitutes.
* bin/cuirass.in (options): Add --use-substitutes.
(show-help): Idem.
(main): Set %use-substitutes?.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
2016-09-23 16:16:29 +02:00
Mathieu Lirzin ff7c3a11f2
tests: database: Use 'test-group-cleanup'.
* tests/database.scm: Use 'test-group-cleanup'.
2016-08-28 00:35:01 +02:00
Mathieu Lirzin 97d6dfb108
tests: http: Reformat expected result.
* tests/http.scm ("spec->json-string"): Make expected result more
readable.
2016-08-03 03:17:01 +02:00
Mathieu Lirzin 1cfacbc6ff
maint: Update README.
* README: Update build instructions.
2016-08-03 02:53:13 +02:00
Mathieu Lirzin 8525c8422c
build: Add a wrapper to 'guix environment'.
* build-aux/guix-env: New file.
* configure.ac: Require it.
2016-08-03 02:53:12 +02:00
Mathieu Lirzin c9223b6d29
build: Add 'bootstrap' script.
* bootstrap: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-08-02 19:04:53 +02:00
Mathieu Lirzin d239f096ed
cuirass: Use 'let' instead of 'let*'.
* bin/cuirass.in (main): Use 'let' instead of 'let*'.
2016-08-02 18:17:26 +02:00
Mathieu Lirzin a6849d4a45
Add (cuirass) module.
* src/cuirass.scm: New file.
* Makefile.am (guilesitedir, dist_guilesite_DATA)
(nodist_guilesite_DATA): New variables.
(pkgmoduledir): Refer to 'guilesitedir'.
(CLEANFILES): Add 'nodist_guilesite_DATA'.
* bin/cuirass.in: Use (cuirass) module.
* bin/evaluate.in: Likewise.
2016-08-02 18:17:20 +02:00
Mathieu Lirzin 651b8bbcf9
Add (cuirass http) module.
* src/cuirass/http.scm: New file.
* tests/http.scm: Likewise.
* Makefile.am (dist_pkgmodule_DATA, TESTS): Add them.
* configure.ac: Check for (json) module.
2016-07-31 01:07:00 +02:00
Mathieu Lirzin e58911de37
utils: Add 'alist?' procedure.
* src/cuirass/utils.scm (alist?): New procedure.
* tests/utils.scm ("alist?"): New test.
2016-07-30 23:08:39 +02:00
Mathieu Lirzin ac4512897c
schema: Evaluations: Add 'revision' column.
* src/schema.sql (Evaluations): Add 'revision' column.
* src/cuirass/database.scm (db-add-evaluation): Adapt.
All callers changed.
2016-07-30 23:07:19 +02:00
Mathieu Lirzin ad267dc86a
tests: Add missing test group statements.
* tests/base.scm: Add missing 'test-begin' and 'test-end'.
* tests/database.scm: Likewise.
* tests/ui.scm: Likewise.
* tests/utils.scm: Likewise.
2016-07-27 14:17:10 +02:00
Mathieu Lirzin 24bfb61e8e
schema: Builds: Add 'evaluation' column.
* src/schema.sql (Builds): Add 'evaluation' column.
* src/cuirass/database.scm (db-add-build): Adapt.
* src/cuirass/base.scm (build-packages): Likewise.
2016-07-27 14:17:10 +02:00
Mathieu Lirzin 5c0a2b5779
build: Fix variable reference in comment.
* Makefile.am (.scm.go): Replace $(cuirassmoduledir) by
$(pkgmoduledir).
2016-07-27 14:17:10 +02:00
Mathieu Lirzin 4f82aeab16
cuirass: Move procedures to (cuirass base) module.
* bin/cuirass.in (fetch-repository, compile, evaluate, build-packages)
(process-specs): Move to ...
src/cuirass/base.scm: ... here.
2016-07-27 14:17:10 +02:00
Mathieu Lirzin d493a58823
schema: Separate "Derivations" from "Evaluations".
* src/schema.sql (Derivations): New table.
(Evaluations): Remove 'derivation' and 'job_name' columns.  Add 'id'
column.
* src/cuirass/database.scm (db-add-evaluation): Adapt.
(db-get-derivation, db-add-derivation): New procedures.
(evaluation-exists?, db-get-evaluation): Delete.
* bin/evaluate.in (main): Adapt.
* tests/database.scm ("sqlite-exec"): Likewise.
("db-add-derivation", "db-get-derivation"): New tests.
("db-add-evaluation", "db-get-evaluation"): Delete.
2016-07-27 14:17:09 +02:00
Mathieu Lirzin 0225d69642
cuirass: show-help: Use 'poll' terminology.
* bin/cuirass.in (show-help): Use 'poll' terminology.
2016-07-27 14:17:09 +02:00
Mathieu Lirzin 719c126863
database: Remove 'db-delete-evaluation' procedure.
* src/cuirass/database.scm (db-delete-evaluation): Delete.
2016-07-27 14:17:09 +02:00
Mathieu Lirzin 67f074335f
cuirass: Modify default interval value.
* bin/cuirass.in (main): Change default interval value.
2016-07-27 14:17:09 +02:00
Mathieu Lirzin c17f74bf19
cuirass: Make specification argument optional.
* bin/cuirass.in (%options): Add 'specifications' option.
(main): Use it instead of the non-option command line arguments.
(show-help): Adapt.
* README (Example): Adapt.
2016-07-27 14:17:09 +02:00
Mathieu Lirzin 815e8060af
database: Remove "db-add-build-log" test.
* tests/database/scm ("db-add-build-log"): Delete.
2016-07-27 14:17:09 +02:00
Mathieu Lirzin f97b24c29e
tests: Add 'hello-singleton' specification example.
* tests/hello-singleton.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-07-27 14:16:57 +02:00
Mathieu Lirzin b8d8c99bd3
database: with-database: Keep the data.
* src/cuirass/database.scm (with-database): Use 'db-open'.
(db-open): Fallback to 'db-init' if DB do not exist.
2016-07-26 11:40:51 +02:00
Mathieu Lirzin f40ac8a535
database: db-open: Add DB optional argument.
* src/cuirass/database.scm (db-open): Add DB optional argument.
2016-07-26 11:21:27 +02:00
Mathieu Lirzin c83d5d4da8
Use stamps to poll repositories. 2016-07-26 00:36:12 +02:00
Mathieu Lirzin e51a755f10
database: Add 'db-add-build' procedure. 2016-07-25 20:32:01 +02:00
Mathieu Lirzin 7292bd5019
database: read-quoted-string: add default value to optional argument. 2016-07-25 20:32:01 +02:00
Mathieu Lirzin ce0d739622
build: Check for (guix) module. 2016-07-25 13:44:25 +02:00
Mathieu Lirzin fccd6fa60b
evaluate: Store evaluations in evaluate script. 2016-07-25 02:38:38 +02:00
Mathieu Lirzin efb249b056
evaluate: Use (cuirass ...) modules.
This avoids code duplication.
2016-07-25 02:37:06 +02:00
Mathieu Lirzin 69e9709b33
evaluate: Use simple-format explicitely. 2016-07-25 02:37:06 +02:00
Mathieu Lirzin a063a2277e
cuirass: Use database to store specifications. 2016-07-25 02:37:00 +02:00