| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
| |
Previously these calls would effectively suspend execution of all the
fibers until they had completed.
* src/cuirass/base.scm (process-specs): Wrap 'fetch-repository' and
'compile' calls in 'non-blocking'.
|
|
|
|
|
| |
* src/cuirass/utils.scm (%non-blocking): New procedure.
(non-blocking): New macro.
|
|
|
|
|
|
| |
* src/cuirass/logging.scm (call-with-time-logging): New procedure.
(with-time-logging): New macro.
* src/cuirass/http.scm (handle-builds-request): Use it.
|
|
|
|
|
| |
* src/cuirass/base.scm (restart-builds): Mark as succeeded the subset of
VALID with at least one valid output.
|
|
|
|
|
|
| |
* src/cuirass/base.scm (handle-build-event)[valid?]: New procedure.
Use it when handling 'build-started', 'build-succeeded', and
'build-failed' events.
|
|
|
|
|
| |
* src/web/server/fiberized.scm (socket-loop): Add 'log-message' call.
* src/cuirass/http.scm (url-handler): Likewise.
|
|
|
|
|
|
| |
* src/web/server/fiberized.scm: New file.
* Makefile.am (dist_pkgmodule_DATA): Add it.
* src/cuirass/http.scm (run-cuirass-server): Use it.
|
|
|
|
|
| |
* src/cuirass/base.scm (build-derivation=?): New procedure.
(restart-builds): Call 'delete-duplicates' on BUILDS.
|
|
|
|
| |
* src/cuirass/base.scm: Remove unneeded #:use-module.
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds)[format-order-clause]: Add
'order' clauses.
* src/cuirass/http.scm (url-handler): Default to (order finish-time) for
/latestbuilds and (order submission-time) for /queue.
|
|
|
|
|
| |
* src/cuirass/database.scm (%sqlite-exec): New procedure.
(sqlite-exec): New macro.
|
|
|
|
|
|
|
|
| |
This works around a scalability issue in guix-daemon when passing a long
list of derivations to 'build-derivations'.
* src/cuirass/base.scm (spawn-builds): New procedure.
(restart-builds, build-packages): Use it.
|
|
|
|
| |
* src/cuirass/base.scm (read/non-blocking): Add 'setvbuf' call.
|
|
|
|
|
| |
* src/cuirass/base.scm (read/non-blocking): New procedure.
(evaluate): Use it instead of inline code.
|
|
|
|
|
|
| |
* src/cuirass/database.scm (sqlite-exec): Use (ice-9 format).
(db-update-build-status!): Add #:log-file parameter and honor it.
* tests/database.scm ("database")["db-update-build-status!"]: Test it.
|
|
|
|
|
|
|
| |
* src/cuirass/base.scm (handle-build-event): Remove unused 'log-port'
parameter.
(restart-builds): Wrap 'build-derivations' in 'guard'. Add
'log-message' calls.
|
|
|
|
| |
* src/cuirass/ui.scm (show-version): Update year.
|
|
|
|
| |
* src/cuirass/http.scm (build->hydra-build): Add #:derivation.
|
|
|
|
|
|
|
|
|
| |
Fixes a regression introduced in
d7306a4f48a666a008091bfeb94d1fdb32b46948 whereby 'register' would pass
the empty list as #:outputs to 'db-add-build'.
* src/cuirass/base.scm (build-packages)[register]: Always include
outputs.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Add case for empty #:outputs.
|
|
|
|
|
|
|
|
| |
Previously 'restart-builds' would lack it, for instance.
* src/cuirass/base.scm (process-specs): Move 'set-build-options' call
to...
(with-store): ... here.
|
|
|
|
|
|
|
|
|
|
| |
Previously STORE would be closed on the first context switch, before
'restart-builds' has completed, leading to an error (writing to a closed
port).
* src/cuirass/base.scm (restart-builds): Remove 'store' parameter. Wrap
body in 'with-store'.
* bin/cuirass.in (main): Adjust accordingly.
|
|
|
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Add /api/queue handler.
* tests/http.scm ("http"): Add a BUILD2 and DERIVATION2, and rename
BUILD and DERIVATION accordingly.
("/build/2", "/build/2/log/raw"): Rename to /42.
("/api/queue?nr=100"): New test.
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds)[format-where-clause]:
Honor (status pending) filter.
* src/cuirass/base.scm (restart-builds): New procedure.
* bin/cuirass.in (main): Fetch pending builds. Start fiber that invokes
'restart-builds' on them.
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds)[format-where-clause]:
Honor (status done) filter.
* src/cuirass/http.scm (url-handler): Always add (status done)
to the filters passed to 'handle-builds-request'.
|
|
|
|
|
| |
* src/cuirass/database.scm (build-status): Use US spelling for
"canceled".
|
|
|
|
|
| |
* src/cuirass/base.scm (build-packages): In 'filter-map' call, add
missing argument to 'db-get-build'.
|
|
|
|
|
| |
* src/cuirass/base.scm (build-packages): Use 'log-message' instead of
'format'.
|
|
|
|
|
|
|
|
|
|
|
| |
Now the database is updated as things are built, rather than after the
whole batch of derivation builds has completed.
* src/cuirass/base.scm (handle-build-event): Call
'db-update-build-status!'.
(build-packages)[register]: Set #:starttime and #:stoptime to 0.
Set #:status to 'scheduled'.
Define 'build-ids' and use it to determine the overall result.
|
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (build-status): Add 'scheduled' and
'started'.
(db-add-build): Make sure #:timestamp, #:starttime, #:stoptime, and
#:status are integers.
(db-update-build-status!): New procedure.
* tests/database.scm ("database")["db-update-build-status!"]: New test.
|
|
|
|
|
|
|
| |
* src/cuirass/utils.scm (define-enumeration): New macro.
* src/cuirass/database.scm (build-status): New macro.
* src/cuirass/base.scm (build-packages)[hydra-build-status]: Remove.
Use the 'build-status' macro instead.
|
|
|
|
|
| |
* src/cuirass/base.scm (process-specs): Add new 'with-database' within
the fiber.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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'.
|
|
|
|
|
| |
* src/cuirass/database.scm (%package-database): Change default file name
from /var/cuirass.db (or similar) to /var/run/cuirass/cuirass.db.
|
|
|
|
|
| |
* src/cuirass/base.scm (handle-build-event): Add 'build-failed'; shorten
message for 'build-remote'.
|
|
|
|
| |
* src/cuirass/base.scm (process-specs): Add 'log-message' calls.
|
|
|
|
|
|
|
| |
* src/cuirass/logging.scm: New file.
* Makefile.am (dist_pkgmodule_DATA): Add it.
* src/cuirass/base.scm (handle-build-event): Use 'log-message' instead
of 'log'.
|
|
|
|
|
|
| |
* src/cuirass/base.scm (prepare-git): New procedure. Body moved from...
(process-specs): ... here. Remove it.
* bin/cuirass.in (main): Call 'prepare-git'.
|
|
|
|
|
|
| |
* src/cuirass/base.scm (%newline): New variable.
(build-event-output-port, handle-build-event): New procedures.
(build-packages): Use 'handle-build-event'.
|
|
|
|
|
|
|
|
|
|
|
| |
This moves log handling responsibility to 'guix publish'.
* src/cuirass/http.scm (handle-log-request): Remove.
(url-handler): Change /log/raw URI handler to return 302 to /log/OUTPUT.
* tests/http.scm (log-file-name): Remove, and remove code to create and
delete it.
("fill-db"): Change #:log value.
("/build/1/log/raw"): Expect 302.
|
|
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds): Make 'order' a separate
filter. Add 'format-limit-clause'. Reverse OUTPUTS.
* tests/database.scm (make-dummy-eval, make-dummy-derivation)
(make-dummy-build): New procedures.
(with-temporary-database): New macro.
("database"): Use 'make-dummy-build'.
("db-get-builds"): New test.
|
|
|
|
|
|
|
|
|
|
| |
'GIT_SSL_CAINFO' designates a single-file certificate bundle, not a
directory; thus it must be passed as the second argument to
'set-tls-certificate-locations!'.
* src/cuirass/base.scm (process-specs): Pass $SSL_CERT_DIR as the first
argument to 'set-tls-certificate-locations!', and $GIT_SSL_CAINFO or
$SSL_CERT_FILE as the second argument.
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* src/cuirass/base.scm (build-packages): Print some feedback when derivations
have been built.
|
|
|
|
|
| |
* src/cuirass/base.scm (copy-repository-cache): Make working copy writable.
Fixes guix .po build errors.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/cuirass.texi (Sections)[Web API]: New section describing the HTTP API.
* src/cuirass/http.scm (spec->json-string): Move it to utils.scm and rename it
object->json-string.
(object->json-scm): Move it utils.scm.
(handle-*-request): New helpers procedures.
(request-parameters): New procedure to parse a request query.
(url-handler): Add new API's.
* src/cuirass/utils.scm (object->json-scm, object->json-string): Exported
procedures moved from http.scm.
* tests/http.scm: Add various tests on new HTTP API.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integration.
* bin/evaluate.in (fill-job): New procedure.
(main): Use it to fill informations (nix-name, system) that will later be
added to database.
* doc/cuirass.texi (Database)[Derivation]: Add system and nix_name fields.
(Database)[Builds]: Add id, status, timestamp, starttime and stoptime
fields. Remove output field.
(Database)[Outputs]: New table describing the build outputs.
* src/cuirass/base.scm (build-packages): Add new fields to build object before
adding it to database.
* src/cuirass/database.scm (db-get-build, db-get-builds): New procedures to get
a build by id from database and a list of builds using filter parameters
respectively.
* src/schema.sql (Outputs) : New table.
(Derivations): Add system and nix_name columns.
(Builds): Remove output column and add id, status, timestamp, starttime and
stoptime columns.
|
|
|
|
|
| |
* src/cuirass/base.scm (process-specs): Set certificate location to the value
in GIT_SSL_CAINFO or SSL_CERT_DIR.
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/28094>.
Reported by Ricardo Wurmus <rekado@elephly.net>.
* src/cuirass/database.scm (SQLITE_CONSTRAINT)
(SQLITE_CONSTRAINT_PRIMARYKEY): New variables.
(db-add-build): Catch 'sqlite-error, and swallow
SQLITE_CONSTRAINT_PRIMARYKEY errors.
* tests/database.scm ("db-add-build"): New test.
|
|
|
|
|
|
|
|
|
| |
When current-processor-count is used without (ice-9 threads) being used, Guile
complains with the following warning:
Import (ice-9 threads) to have access to `current-processor-count'.
* src/cuirass/base.scm: Use (ice-9 threads).
|