| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The internal rowid's are used for builds as you can request builds by using
the rowid in the URL.
The motivation here is to enable running VACUUM operations in SQLite, without
risking the rowid's for Builds changing. It would be bad if they change, as
they're used in the URL's for builds.
* src/schema.sql (Builds): Add id column.
* src/curiass/dataabse.scm (db-add-build): Change PRIMARYKEY constraint to
UNIQUE constraint.
* src/sql/upgrade-6.sql: New file.
* Makefile.am (dist_sql_DATA): Add it.
|
|
|
|
|
|
|
| |
As it is unused from where db-add-input is called.
* src/cuirass/database.scm (db-add-input): Don't call and
return (last-insert-rowid).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Being able to take a derivation and query the build information is useful, but
in cases where there are multiple derivations that produce the same outputs,
the probability of getting the data back from Cuirass is reduced.
This is because Cuirass might not have build the exact derivation you have,
but a different derivation that produces the same outputs (this can commonly
happen when a related fixed output derivation changes).
Cuirass doesn't store derivations if they produce the same outputs as a
derivation it already knows about, so it can't determine if this is the
case. Therefore, provide a way of querying build results by output, rather
than derivation.
The motivation behind this is to make it easier to import build information in
to the Guix Data Service.
* src/cuirass/database.scm (db-get-output): New procedure.
* src/cuirass/http.scm (respond-output-not-found): New procedure.
(request-path-components): Handle /output/… requests.
* doc/cuirass.texi (Build information): Mention that you can get build
information by output.
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-add-evaluation): Record the creation of new
evaluations as events.
(db-set-evaluation-done): Record when evaluations finish as an event.
* src/cuirass/http.scm (url-handler): Add a new /api/evaluation-events page.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a table to store events, which have a type and a JSON blob. These can be
used to record changes, this commit inserts events when new builds are
created, and when the status of builds change.
The EventsOutbox table is then used to track when events have been sent
out. This is done through the new cuirass-send-events script.
* Makefile.am (bin_SCRIPTS): Add bin/cuirass-send-events.
.gitignore: Add bin/cuirass-send-events.
(dist_pkgmodule_DATA): Add src/cuirass/send-events.scm.
(dist_sql_DATA): Add src/sql/upgrade-5.sql.
(EXTRA_DIST): bin/cuirass-send-events.in.
(bin/cuirass-send-events): New rule.
* bin/cuirass-send-events.in: New file.
* src/cuirass/send-events.scm: New file.
* src/sql/upgrade-5.sql: New file.
* src/cuirass/database.scm (changes-count): New procedure.
(db-update-build-status!): Call db-add-event after updating the build status.
(db-add-event): New procedure.
(db-add-build): Insert an event when a new build is inserted.
(db-delete-events-with-ids-<=-to): New procedure.
* src/schema.sql (Events): New table.
|
|
|
|
|
| |
* src/cuirass/base.scm (build-derivations&): Remove extra 'close-port'
call in 'guard' clause.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Handle /admin route.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Handle /admin/specifications/add,
/admin/specifications/delete/*, and /admin/specifications.
|
|
|
|
|
| |
* src/cuirass/templates.scm (specifications-table): Handle optional ADMIN?
argument.
|
|
|
|
| |
* src/cuirass/database.scm (db-remove-specification): New procedure.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Match on HTTP method.
|
|
|
|
|
| |
* src/cuirass/templates.scm (evaluation-badges): Link to
/eval/ID/log/raw in the 'zero?' case.
|
|
|
|
|
|
|
| |
* src/cuirass/base.scm (evaluation-log-file): Export.
* src/cuirass/http.scm (url-handler)[respond-gzipped-file]: New
procedure.
Add handler for /eval/ID/log/raw.
|
|
|
|
|
|
| |
* src/cuirass/base.scm (&evaluation-error)[id]: New field.
(evaluate): Specify the 'id' field.
(process-specs): Show the log file name upon evaluation failure.
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a longstanding issue where evalution output would splatter
over the /var/log/cuirass.log and be inscrutable.
* src/cuirass/base.scm (%cuirass-state-directory): New variable.
(evaluation-log-file): New procedure.
(evaluate)[log-file, log-pipe]: New variables.
Call 'spawn-fiber' with a logging fiber. Wrap 'open-pipe*' call into
'with-error-to-port'. Close 'log-pipe'.
|
|
|
|
|
|
|
|
|
| |
There's a one to one mapping of build id to derivation, so allow querying by
derivation file name as well. I'm looking at this as I'm interested in getting
build information in to the Guix Data Service.
* src/cuirass/http.scm (url-handler): Support fetching builds by numeric id or
the derivation file name.
|
|
|
|
|
|
|
| |
This is a followup to 858b6b8c8f2ae7b1ddaf4ae363147121be1f1fe8.
* src/cuirass/templates.scm (build-details)[blocking-outputs]: Fix type
errors when dealing with the result of 'derivation-build-plan'.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Call 'vector->list' on the result
of 'handle-builds-search-request', as expected by 'build-search-results-table'.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Call 'vector->list' on the result
of 'handle-builds-request', as expected by 'build-eval-table'.
|
|
|
|
|
|
|
| |
This is a follow-up to commit c6f4fa5f577e4752d845fa3ce17c68fcd2079904.
* src/cuirass/http.scm (url-handler): SPECIFICATIONS-TABLE expects a list, not
a vector.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-details): Use 'derivation-build-plan'
instead of 'derivation-prerequisites-to-build'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
* src/cuirass/http.scm: Add missing include of (ice-9 format).
|
|
|
|
|
|
|
| |
The 'nix-error' names are now deprecated in Guix.
* src/cuirass/base.scm (build-derivations&): Use the new 'store-error'
procedure names.
|
|
|
|
|
| |
* src/cuirass/templates.scm: Factor out class and title helpers
for build statuses, and handle all the statuses.
|
|
|
|
|
| |
* src/cuirass/database.scm (query->bind-arguments): Handle ^ and $ characters
in query strings.
|
|
|
|
|
| |
* src/cuirass/templates.scm (pagination): Disable "Last" and "First"
if applicable.
|
|
|
|
| |
* src/cuirass/templates.scm (evaluation-badges): Add ‘title’ attributes.
|
|
|
|
|
| |
* src/cuirass/templates.scm (html-page): Include CSS for widening the search
input field on focus.
|
|
|
|
|
|
|
|
| |
* src/cuirass/templates.scm (search-form): Take the query as an argument and
set it as the value (unless #F).
(html-page): Optionally take a value for QUERY as an argument.
* src/cuirass/http.scm (url-handler): Let "search" handler pass QUERY to
HTML-PAGE.
|
|
|
|
|
| |
* src/cuirass/database.scm (query->bind-arguments): Ignore invalid query
terms.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-details): Determine failed outputs of
prerequisites and link to their logs.
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-evaluation-summary): New procedure.
* src/cuirass/http.scm (url-handler): Display number of builds in tabs.
|
|
|
|
|
|
| |
All of them are included in "failed".
* src/cuirass/http.scm (url-handler): Remove extraneous tabs.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Use "pending" instead of "scheduled".
|
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Split result for "eval" page in tabs.
* src/cuirass/templates.scm (build-eval-table): Remove border from table head;
Remove lead paragraph.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Use "jobset" instead of "spec".
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table, build-search-results-table):
Link ID to build details URL.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Add handler for /build/<id>/details.
* src/cuirass/templates.scm (build-details): New procedure.
|
|
|
|
| |
* src/cuirass/database.scm (db-get-specifications): Order rows by "name".
|
|
|
|
|
|
| |
* src/cuirass/database.scm (query->bind-arguments): New procedure.
(db-get-builds-by-search): Support filtering by spec and system.
(db-get-builds-query-min, db-get-builds-query-max): Adjust.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Skip computation of builds-id-min and
builds-id-max when query is missing.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-search-results-table): Highlight query
string.
|
|
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds-by-search, db-get-builds-query-min,
db-get-builds-query-max): New procedures.
* src/cuirass/http.scm (handle-builds-search-request): New procedure.
(url-handler): Handle "search" route.
* src/cuirass/templates.scm (search-form): New variable.
(html-page): Use it.
(build-search-results-table): New procedure.
|
|
|
|
| |
* src/static/images/logo.png: Replace "GuixSD" with "Guix".
|
|
|
|
|
| |
* src/cuirass/base.scm (process-specs): Catch 'git-error around call to
'process'.
|
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/33407>.
Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>.
* src/cuirass/database.scm (catch-sqlite-error): Add missing MESSAGE
argument to 'throw'.
|
|
|
|
|
|
| |
* src/cuirass/database.scm (catch-sqlite-error): New macro.
(db-add-checkout, db-add-output, db-add-build): Use it instead of custom
'catch' block'.
|
|
|
|
|
| |
* src/cuirass/templates.scm (evaluation-badges): Use a special badge
denoting failure when the sum of all jobs is zero.
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-evaluations-build-summary): Remove
duplicate #:in-progress entry.
|