Commit graph

695 commits

Author SHA1 Message Date
308d1d7102 Add a page for each build 2019-12-16 15:18:14 +00:00
a59f352046 Split out select-build-by-build-server-and-derivation-file-name
Create select-build-id-by-build-server-and-derivation-file-name, which just
returns the id, and then a variant that returns more fields for making a page
for each build.
2019-12-15 10:32:40 +00:00
b693d3e57d Improve select-builds-with-context-by-derivation-file-name
To find builds for equivalent derivations.
2019-12-15 08:51:31 +00:00
6a0332bed2 Add a builds page for a specific revision
Like the /builds page, but filtered for a specific revision.
2019-12-14 21:02:27 +00:00
a84fc954d1 Extend select-build-stats to allow filtering by revision 2019-12-14 20:59:54 +00:00
633e757fe8 Break down the build stats by build server 2019-12-14 20:17:53 +00:00
6e9b07bc4a Drop the default number of results on the derivation outputs page
To have it load quicker, but also because 100 results aren't necessary.
2019-12-14 17:11:46 +00:00
7cde75f8d6 Add "Fixed output" to the options for Reproducibility status
On the derivation outputs page, as some derivations are reproducible by
definition, so it's good to identify and exclude these.
2019-12-14 17:11:01 +00:00
9dddf2c606 Implement the reproducibility status filter
On the derivation-outputs page.
2019-12-14 17:10:23 +00:00
4cc678dfb1 Add a parameter to form-horizontal-control affect multiple values
Previously, the behaviour was to accept multiple values, but enable just
allowing one value to be entered.
2019-12-14 17:04:36 +00:00
67710065f0 Improve the next page links on the revision pages
To add or update the relevant query parameter, rather than replacing all the
query parameters with the new value.
2019-12-13 17:13:41 +00:00
fc9c44b715 Add a utility to help generate next page links 2019-12-13 17:13:27 +00:00
156b7eea7e Improve the select-build-stats function
Account for equivalent derivations, rather than counting them as unknown.
2019-12-12 20:07:22 +00:00
af948de646 Fix the select-derivations-with-no-known-build
The equivalent_derivations table was an experiment that didn't work, so switch
to using the derivations_by_output_details_set table.

Also take the build server id as input, as this allows selecting derivations
which have no known build for the relevant build server.
2019-12-12 20:07:22 +00:00
c90f411e5e Add options to the query-build-servers script
So you can select to query specific build servers.
2019-12-12 20:07:22 +00:00
f13077d087 Remove non-existent export from the derivation module 2019-12-12 20:07:22 +00:00
7dc0238436 Add a page to show derivation outputs for a revision 2019-12-12 20:07:22 +00:00
eecfdeb9e4 Add a function to select the outputs in a revision 2019-12-12 20:07:22 +00:00
e92d4dbbcf Add a results count to the revision derivations page 2019-12-12 20:07:22 +00:00
05d295d6f0 Fix the all-results/limit handling in the revision derivatinos controller 2019-12-12 20:07:22 +00:00
544f122ff5 Fix related builds in select-derivations-in-revision
Rather than just counting builds where the derivation matches, select builds
based on the derivation outputs, which accounts for different but equivalent
derivations.
2019-12-12 20:07:22 +00:00
c8b93cb0d0 Add new derivation_output_details_set_id column to the builds table
As this will hopefully provide a faster way of associating derivations with
builds.
2019-12-12 20:07:22 +00:00
a965ba1f6a Start storing and identifying sets of derivation outputs
Derivations are effectively equivalent if they produce the same set of
outputs, which is possible because of the equivalence of fixed output
derivations. A fixed output derivation can be different, but equivalent,
because it produces the same fixed output.

To better allow tracking equivalent derivations, primarily to allow working
out what derivations might correspond to a build, store the sets of derivation
outputs, and which derivations they relate to.
2019-12-12 20:07:22 +00:00
0e97c55c0c Add some database indexes 2019-12-12 20:07:22 +00:00
00bfa5336e Add a page to show the derivations in a revision 2019-12-12 20:07:22 +00:00
9a99722643 Add a utility to generate a span for the status of a build 2019-12-12 20:07:22 +00:00
0cebb97340 Add a function to select derivations in a revision 2019-12-12 20:07:22 +00:00
aa3af00e07 Fix and improve fetching outputs to fetch from build servers
The join on derivation_outputs was completely wrong, so fix that.

Also, rather than only selecting outputs where there's a corresponding build,
just eliminate outputs where there is an entry in the nars table, fetched from
the relevant build server.

Also just look at x86_64-linux derivations, because there's no filtering on
relevant derivations for a build server at the moment.
2019-12-12 20:07:22 +00:00
9e5cde80b3 Fix query in select-derivations-with-no-known-build
Rather than eliminating any derivation that has a known build, eliminate those
derivations, but also equivalent derivations as well.

For selecting the derivations in a revision, join on the equivalent
derivations, as all the equilalent derivations need checking as well, as it's
unknown which one Cuirass would have associated the build against.

Also, filter for x86_64-linux, to avoid checking for crossbuilt things. This
should be replaced by some way of describing what derivations a build server
has.
2019-12-12 20:07:22 +00:00
2e9844e599 Display the build server URL when fetching data 2019-12-12 20:07:22 +00:00
1e040010fc Fix the match statement in select-build-by-build-server-and… 2019-12-12 20:07:22 +00:00
29e897ce9c Improve variable names in fetch-narinfo-files 2019-12-12 20:07:22 +00:00
eb2ba599d9 Populate the narinfo_fetch_records table 2019-12-12 20:07:22 +00:00
0291bda98a Deduplicate builds and add a unique index
Duplicate builds could creep in if the code to create them ran concurrently. I
didn't exclude them initially, as I was unsure if there should be such a
restriction, but at least for now, Cuirass builds map exactly to a single
derivation, so use the same restriction here.
2019-12-12 20:07:22 +00:00
8a5beb7f88 Change nar_urls size to bigint
As some nars can be bigger than the size of an int.
2019-12-12 20:07:22 +00:00
5168b38c2a Change nars size to bigint
As some nars can be bigger than the maximum size of an int.
2019-12-12 20:07:22 +00:00
d2405f6c77 Add a table to record where narinfo files were fetched from
Otherwise it's hard to associated narinfo files to build servers.
2019-12-12 20:07:22 +00:00
299f9dc480 Add an index on the derivation_file_name field in the builds table
As this helps when finding builds relating to specific derivations.
2019-12-12 20:07:22 +00:00
716eb3c3b6 Move build-status helpers to the html-utils module 2019-12-12 20:07:22 +00:00
e078b9611d Include nars on the output page 2019-12-12 20:07:22 +00:00
8e5f8e4170 Add a new page for the narinfos associated with an output 2019-12-12 20:07:22 +00:00
2d87bd6340 Add a page for each signing key 2019-12-12 20:07:22 +00:00
8ff27eaa14 Add a new html-utils module
To store code used for rendering HTML across multiple controllers.
2019-12-12 20:07:22 +00:00
acf1735a0f Stop setting a long max-age for the viewing store items
As as new derivations are loaded, the contents of the page can change.
2019-12-12 20:07:22 +00:00
a0ce016c02 Support querying builds by build servers 2019-12-12 20:07:22 +00:00
f7069456b5 Support querying builds by status 2019-12-12 20:01:30 +00:00
04e98ed4da Handle multiple invalid values for a single form field 2019-12-12 20:01:26 +00:00
7cc5c02cdd Query build servers for narinfo files
As well as making it possible to only query build servers for builds relating
to a specific revision.
2019-11-30 10:59:16 +00:00
b278065d2a Fix selecting pending builds 2019-11-30 10:58:40 +00:00
0aa78e9ef5 Don't create misleading scheduled build status entries
Cuirass provides a timestamp field in build responses, and sometimes this
means when the build was scheduled, but when the build is finished, it's the
stoptime.

So only use the timestamp when the build hasn't finished.
2019-11-30 10:55:16 +00:00