2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/guix-cuirass.git synced 2023-12-14 06:03:04 +01:00
Commit graph

64 commits

Author SHA1 Message Date
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
Ludovic Courtès
327d7be013 Initialize libgit's TLS certificate directory once and for all.
* src/cuirass/base.scm (prepare-git): New procedure.  Body moved from...
(process-specs): ... here.  Remove it.
* bin/cuirass.in (main): Call 'prepare-git'.
2018-01-22 13:16:10 +01:00
Jan Nieuwenhuizen
2a4d493e28
cuirass: Add --listen command line option.
* bin/cuirass.in (show-help): Add help for --listen option.
(%options): Add listen option.
(main): Pass host to run-cuirass-server.
* doc/cuirass.texi (Invocation): Add --listen option.
* src/cuirass/http.scm (run-cuirass-server): Add named #:host parameter.
2017-09-18 21:57:05 +02:00
Mathieu Othacehe
efcef52883
cuirass: Add fallback parameter.
* src/cuirass/base.scm (%fallback?): New exported parameter.
(process-specs)[set-build-options]: Pass fallback parameter.
* bin/cuirass.in (%options): Add fallback.
(main): Set %fallback? parameter.
(show-help): Update.
2017-07-12 16:28:41 +02:00
Mathieu Othacehe
d7dc7cb92c
cuirass: Stop λ/lambda mixing.
* bin/cuirass.in: Replace λ by lambda.
* bin/evaluate.in: Ditto.
* build-aux/guix.scm: Ditto.
* examples/gnu-system.scm: Ditto.
* examples/guix-track-git.scm: Ditto.
* src/cuirass.scm: Ditto.
* src/cuirass/base.scm: Ditto.
* src/cuirass/database.scm: Ditto.
* src/cuirass/ui.scm: Ditto.
* src/cuirass/utils.scm: Remove λ* macro.
2017-07-06 10:03:16 +02:00
Mathieu Othacehe
f301378d94
utils: Remove useless procedures.
* src/cuirass/utils.scm (mkdir-p, make-user-module,
  call-with-temporary-directory, with-directory-excursion): Remove because
  already defined in guix.
* tests/utils (with-directory-excursion): Remove associated test.
* src/cuirass/base.scm: Use (guix build utils) to provide procedure removed
  from (cuirass utils).
* bin/evaluate.in: Ditto.
* bin/cuirass.in: Use "make-user-module" provided by (guix ui).
2017-07-01 18:47:18 +02:00
Mathieu Othacehe
5127c6797c
cuirass: Add "--load-path" option.
* bin/cuirass.in (%options): Add "--load-path" and "-L" command line options.
(show-help): Adapt.
* src/cuirass/base.scm (%guix-package-path): New parameter.
(set-guix-package-path!): New procedure.
(evaluate): Call "evaluate" script with '%guix-package-path'.
* bin/evaluate.in (main): Match 'guix-package-path' command line argument and
handle it.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
2017-01-29 17:19:20 +01:00
Mathieu Lirzin
8a782b3e84
cuirass: Add "--port" command line option.
* bin/cuirass.in (%options): Add "--port" and "-p" command line options.
(show-help): Adapt.
(main): Set default to 8080.  Call 'run-cuirass-server' with this.
* src/cuirass/http.scm (run-cuirass-server): Display the port number.
* doc/cuirass.texi (Invocation): Document new option.
2016-12-28 18:49:21 +01:00
Mathieu Lirzin
57e10c6056
build: Set Guile load paths in 'pre-inst-env'.
This reverts most of 4f0d665746.  The load paths
are still hard coded after installation, however 'pre-inst-env' wrapper is
used for defining them in the local build environment.  This is more
convenient for running the tests manually or launching a Guile REPL with all
the Cuirass modules accessible.

* build-aux/pre-inst-env.in (GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH): New
variables.
* bin/cuirass.in: Comment Guile load paths.
* Makefile.am (local_load_path, local_load_compiled_path): Delete.
(AM_TESTS_ENVIRONMENT): Don't set Guile load paths.
(do_subst): Use install directories for Guile load paths.
(install-exec-hook): Uncomment 'cuirass' hard coded load paths.
2016-12-28 18:19:03 +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
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
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
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
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
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
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
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
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
fccd6fa60b
evaluate: Store evaluations in evaluate script. 2016-07-25 02:38:38 +02:00
Mathieu Lirzin
a063a2277e
cuirass: Use database to store specifications. 2016-07-25 02:37:00 +02:00
Mathieu Lirzin
41a2750929
cuirass: evaluate: Fix docstring. 2016-07-25 02:12:41 +02:00
Mathieu Lirzin
219a8d5b40
evaluate: Use 'read' instead of 'eval-string'. 2016-07-25 02:12:41 +02:00
Mathieu Lirzin
c7c9e91876
schema: Separate 'Evaluations' from 'Builds'.
Adapt src/cuirass/database.scm and its tests.
2016-07-25 02:12:41 +02:00
Mathieu Lirzin
cf7e290dc2
maint: Update file headers. 2016-07-25 02:12:41 +02:00
Mathieu Lirzin
730832c2fb
cuirass: Fix specification file error message. 2016-07-25 02:12:38 +02:00
Mathieu Lirzin
89b1f89cfc
Move '%program-name' to (cuirass ui) module. 2016-07-25 02:12:37 +02:00
Mathieu Lirzin
3efe57e0ca cuirass: Fix 'show-help'. 2016-07-14 17:44:23 +02:00
Mathieu Lirzin
0808ab3ecd Remove unnecessary (cuirass job) module. 2016-07-13 14:16:36 +02:00
Mathieu Lirzin
53c12be409 Evaluate derivations in a separate process.
This fixes a bug where different Guix branches gave the same
derivations.
2016-07-13 14:07:24 +02:00
Mathieu Lirzin
85d3ba4e45 cuirass: process-spec: Use 'when' instead of 'and'.
This is done because 'set-load-path!' returns a undefined value.
2016-07-04 13:51:03 +02:00
Mathieu Lirzin
987f83b000 Fix single char for 'database' in %options. 2016-07-03 16:22:23 +02:00
Mathieu Lirzin
3377d948ef cuirass: Add '--one-shot' command line argument. 2016-07-02 23:08:52 +02:00
Mathieu Lirzin
7e9af4298e cuirass: Remove '--use-file' command line argument. 2016-07-02 23:00:17 +02:00
Mathieu Lirzin
4b53493c3b cuirass: Move code from main to auxiliary procedures. 2016-07-02 22:30:17 +02:00
Mathieu Lirzin
b65612c264 cuirass: Remove unneeded quasiquote. 2016-07-02 18:08:06 +02:00
Mathieu Lirzin
13db5aa618 λ all the things! 2016-07-02 15:49:34 +02:00
Mathieu Lirzin
7ae6ce0690 Add %package-cachedir parameter. 2016-07-02 15:34:40 +02:00
Mathieu Lirzin
2bace10106 Add (cuirass utils) module.
Move 'with-directory-excursion' here.
2016-07-02 03:13:29 +02:00
Mathieu Lirzin
94f910355c job: Add load-path field to <job-spec>. 2016-07-02 01:51:56 +02:00
Mathieu Lirzin
b185505db0 cuirass: Remove dead code. 2016-07-02 01:04:34 +02:00
Mathieu Lirzin
ca6b5d6677 job: Add 'commit' and 'tag' field to <job-spec>. 2016-07-01 16:46:10 +02:00
Mathieu Lirzin
efef5c29c8 Fix 0f04df2691. 2016-07-01 16:44:46 +02:00
Mathieu Lirzin
a62624301b base: Add %program-name parameter object. 2016-07-01 16:00:14 +02:00
Mathieu Lirzin
0f04df2691 Avoid pattern matching on records which relies on slot order. 2016-07-01 16:00:04 +02:00
Mathieu Lirzin
990c902fcc Store build logs in the database. 2016-06-29 16:16:48 +02:00
Mathieu Lirzin
5ff38984e8 Make %package-database a parameter object.
Move it to (cuirass database).
2016-06-26 22:54:49 +02:00
Mathieu Lirzin
5efdcb4441 Add a '--database' command line argument. 2016-06-26 17:02:23 +02:00