Commit graph

184 commits

Author SHA1 Message Date
rand00
c6ff42d391 Views: Fix fize of treemap 2022-02-01 11:30:44 +00:00
rand00
a0254b3e70 Builder_web.job_build_treemap: Changed title of new excluded treemap chunks 2022-02-01 11:30:44 +00:00
rand00
82c5614440 Builder_web.job_build_treemap: Calculating extra chunks inserted in treemap-scale 2022-02-01 11:30:44 +00:00
rand00
fdd00a17ab Builder_web.job_build_treemap: Changed minimal size of treemap node based on example treemap 2022-02-01 11:30:44 +00:00
rand00
b8c40861f3 Builder_web.job_build_treemap: Implementing partitioning of Info tree 2022-02-01 11:30:44 +00:00
rand00
79c40473b4 Views: Changed background color 2022-02-01 11:30:44 +00:00
rand00
6a70220dee Removed debug-printing + Adjusted size of treemap iframe 2022-02-01 11:30:44 +00:00
Robur
07b5daff9f Fix to the code extracting binary size for treemap visualization 2022-02-01 11:30:44 +00:00
rand00
d247846e35 WIP: debugging 2022-02-01 11:30:44 +00:00
rand00
462bbf5942 Treemap scale: Passing on binary-size to new Treemap renderer 2022-02-01 11:30:44 +00:00
rand00
c9ab07832e Views: Removed old code 2022-02-01 11:30:44 +00:00
rand00
4e2d069b26 Views: Chosen a static width relative to textsize for treemap 2022-02-01 11:30:44 +00:00
rand00
b52e3bc0b0 Views: Rewrote static css to be one big string instead 2022-02-01 11:30:44 +00:00
rand00
5548c04a3e Several changes related to treemap rendering:
* Rendering treemap in build-page as iframe, as the svg needs static CSS classes to work; and static CSS doesn't compose
  * Added 'include_static_css' param to Views.layout (useful for later)
  * Added Builder_web.dream_svg helper if we want to serve a svg directly
2022-02-01 11:30:44 +00:00
Robur
7fa8402eee use modulectomy to render svg of the unikernel binaries 2022-02-01 11:30:44 +00:00
92a43fbfdd Add .../all.tar endpoint with artifacts
One stop shop for all the build artifacts!
2022-01-25 20:01:08 +00:00
Robur
8489d1ff36 Remove README from build page 2021-12-02 14:49:45 +00:00
Robur
19633e84ea Reuse DB connection for consequtive queries 2021-12-02 13:58:44 +00:00
Robur
0afec1617b markdown sanitization, addresses issue #46 2021-12-02 11:27:00 +00:00
68237ef382 Rewrite queries to take optional platform
A number of queries were the same except one would take another string
argument and add `AND platform = $N` in its WHERE clause. This commit
merges them and does `AND ($N IS NULL OR platform = $N)` and the client
code in Model doesn't have to check the string option.
2021-11-18 11:56:17 +01:00
Robur
088b55acc3 remove failed builds from job page
add a job page with failed builds, link to it
2021-11-17 16:39:49 +00:00
Robur
2e82778e87 Only show successful builds on the front page
Failed builds can be viewed on the linked /failed-builds/ page.
2021-11-17 16:00:58 +00:00
Robur
e1d950ad5b link to failed-builds, paginate failed-builds 2021-11-17 15:54:13 +00:00
Robur
0910a05bbd builds: improve comparisons (text and query) to earlier and later builds
only take into consideration the builds that have a different output
2021-11-17 15:28:15 +00:00
Robur
e5168e1b4f Display timestamps without time zone offset, use Z instead to indicate time zone offset 0 2021-11-17 14:44:41 +00:00
Robur
740e76b73e remove comment about missing failed-builds page 2021-11-17 14:37:25 +00:00
Robur
c6128ca24b /failed-builds/: fix query and improve page 2021-11-17 14:33:05 +00:00
Robur
8ee69d7211 Work around caqti assertion failure 2021-11-17 14:06:18 +00:00
Robur
c566cd0215 Work towards failed-builds page 2021-11-17 14:02:04 +00:00
Robur
e15bd00fe5 improve comparison page and always link with current build as head (right_build) 2021-11-12 13:01:20 +00:00
1dd1fe54ba Add breadcrumb navigation
Fixes #59.
2021-11-12 12:37:25 +00:00
Robur
16748b8995 Show builds by platform 2021-11-08 15:03:19 +00:00
Robur
594c6d5917 remove unused queries 2021-11-05 12:49:16 +00:00
Robur
c76cead3f7 view: show platform on build page 2021-11-05 11:02:30 +00:00
Robur
e69d1beb9f Add platform to build table 2021-11-05 10:45:26 +00:00
a9ff2dd033 Remove rresult 2021-11-05 10:10:44 +00:00
Robur
045dbcf23d adapt to builder 0.2.0 changes 2021-11-03 14:40:04 +00:00
9dc3fe7abe upload_binary: add binary_name query parameter
This allows for binary upload with a binary name other than <job>.bin,
making bootstrapping easier.
2021-10-26 13:24:17 +02:00
Robur
87a6b95e8c Model.read_file: avoid file descriptor leak 2021-10-18 13:45:53 +00:00
Alain Armand
fa1cf92702 avoid deprecated functions from Fmt (strf is now str) 2021-10-18 13:22:07 +00:00
71a016fdae Fix up mix up
When builds were uploaded the script and console was mixed up. This
commit fixes that and includes a fixup migration script.
2021-09-10 13:00:04 +02:00
f24a9297d0 Re-add viewing build script and build console
Instead of displaying the script and console output in the build page
the build page links to new endpoints for viewing the script and the
console output.
2021-09-09 18:06:08 +02:00
Robur
edcbf73386 Add /job/<job>/build/<build>/main-binary redirect endpoint
Fixes #52
2021-09-08 09:10:30 +00:00
Robur
8279bc1c26 store relative path for console and script 2021-09-07 11:53:51 +00:00
Robur
f7823da321 fix console output order 2021-09-07 10:04:11 +00:00
Robur
7c04469825 Prepare staging dir before writing
The preparation of the staging dir when saving a build was handled in
Model.save_all, but we expect it to be created in Model.save_console_and_script.

This commit refactors the staging dir preparation into a function for better
clarity.
2021-09-07 09:35:26 +00:00
Robur
e7daf0366b Rename local variable meta(s) -> build(s) 2021-09-07 09:35:26 +00:00
Robur
17420c389b WIP 2021-09-07 09:35:26 +00:00
4c42865ca7 fix compilation 2021-08-03 15:12:53 +02:00
cd633087d5 Infer section from job name rather than extension 2021-08-03 12:28:18 +00:00
Robur
392286dd98 remove README.md and build-hashes from build_artifact table and file system
no longer store full file on disk
2021-07-12 14:10:54 +00:00
Robur
aa4db9b6a8 in /job/:job/build/:build output links to:
- builds that reproduced the binary with the same inputs
- builds that reproduced the binary with different inputs (only one for each input_id)
- builds with same input that produced a different output

/job/:job group by hash
2021-07-12 13:31:35 +00:00
Robur
6ec40365ab Add input_id to build table
The input_id column is a checksum of the files relevant for reproducibility.
2021-07-06 13:54:25 +00:00
Robur
be26e56fd4 Output links to comparisons of other builds with the identical main binary
in /job/:job/build/:build
2021-07-06 10:23:29 +00:00
9c326679ba investigate differences in build, install, and uri when opam file differed (#48)
compare environment and system packages as well

investigate differences in build, install, and uri when opam file differed

Co-authored-by: Robur <team@robur.coop>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/48
Co-Authored-By: hannes <hannes@mehnert.org>
Co-Committed-By: hannes <hannes@mehnert.org>
2021-07-06 08:34:17 +00:00
7c7282894b Typed database IDs (#47)
Typed database IDs

Reviewed-on: https://git.robur.io/robur/builder-web/pulls/47
Co-Authored-By: Reynir Björnsson <reynir@reynir.dk>
Co-Committed-By: Reynir Björnsson <reynir@reynir.dk>
2021-07-05 12:45:08 +00:00
Robur
1e3fcf984f Allow README.md being present anywhere
The one in root takes precedence, but opam-installer doesn't really
want to install things into %{prefix}%.
2021-06-30 14:10:02 +00:00
Robur
009fa49e9e render README from latest build (preserved as a tag value in job_tag table) 2021-06-30 12:47:30 +00:00
Robur
5285872865 minor changes to main site 2021-06-30 11:38:02 +00:00
Robur
b4996939af Job_tag: try to retrieve the tag value - insert if none, update if some 2021-06-30 11:09:01 +00:00
Robur
eb786088e7 Builder_db.Job_tag.add: use INSERT OR REPLACE to avoid constraint violation 2021-06-30 09:56:47 +00:00
Robur
9a271add7b add tag to jobs: description 2021-06-29 15:15:16 +00:00
Robur
e45497e97c add tags to jobs: section and synopsis, inferred from the latest successful build 2021-06-29 14:59:08 +00:00
Robur
88377adb7c adapt to builder changes (job -> script_job) 2021-06-25 16:43:47 +00:00
Robur
b279eb521b Adapt to build input files removal
* Do not synthesize empty input files list
* Drop table build_file
2021-06-25 10:26:03 +00:00
Robur
5555c87afd Add the /job/:job/upload endpoint which receives a raw binary.
Fixes #38
2021-06-09 14:26:05 +00:00
Robur
901c24ab27 if_error: if not found, present a not found message 2021-06-09 14:25:00 +00:00
Robur
31a501e0c4 Add user column to build
We want to track who uploaded what builds.
A `nologin` user is created in the migration that owns all preexisting builds.
2021-06-09 11:54:24 +00:00
Robur
02bfbc956f Improve HTTP status codes (4xx on user data failure)
Fixes #43
2021-06-09 09:48:51 +00:00
Robur
eaf8a609c9 Add an access_list to grant per-job user upload permissions
Fixes #36
2021-06-08 14:54:23 +00:00
8f4a45bf76 Revise error handling
- also validate UUID to be 36 characters
- also error with not_found for unknown jobs
2021-06-08 10:26:57 +00:00
e4407902f5 Do not read file if not modified 2021-06-05 08:18:39 +02:00
847e0cffe4 Check if-not-modified
We are still reading the whole file from disk even when it's not needed.
2021-06-04 13:01:28 +02:00
Robur
a45a584831 Generate opam compare links only for successful builds 2021-06-02 13:05:10 +00:00
Robur
fb2515e713 Add /build/latest/ redirect 2021-06-02 12:23:40 +00:00
Robur
4fec5ed38c Builder_db: use foreign key for build.main_binary 2021-06-02 10:29:08 +00:00
Robur
49003ca21f Store relative paths for build artifacts in database 2021-06-01 15:43:55 +00:00
Robur
10351c65bd Migrate to dream 2021-06-01 14:06:36 +00:00
bc7a2006e3 More precise error type information 2021-06-01 10:33:35 +02:00
4f17b8b8a6 Link to opam diff
Compare with latest build as well as previous build.
2021-04-23 15:00:12 +02:00
9974510787 Display builds with start time 2021-04-23 09:46:23 +02:00
5f1f106c91 Link back to builds when comparing 2021-04-23 09:46:23 +02:00
c51399823c Packages w/ same version different opam 2021-04-23 09:45:35 +02:00
ac43298620 Fix anchor fragment links 2021-04-23 09:45:35 +02:00
031a2042b0 opam-switch diff 2021-04-23 09:45:35 +02:00
265e00a718 Do DB rollback on failed build insert 2021-03-25 10:42:04 +01:00
7b5119189d Filesystem transactions and cleanup 2021-03-24 14:49:23 +01:00
a7be8f8f47 Be consistent with order of sha256 and size 2021-02-26 10:05:53 +01:00
71cc34bac3 Use int instead of int64 for file sizes
We are not going to use the extra bit, and String.length returns the
size as an int anyway.
2021-02-25 15:27:45 +01:00
3046994f4c Add filesize to view 2021-02-25 15:18:43 +01:00
535d2ac0b9 Add file sizes 2021-02-24 11:31:31 +01:00
7b81d78554 Use scrypt (#32)
Switch to using scrypt for password hashing

Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/32
Co-Authored-By: reynir <reynir@reynir.dk>
Co-Committed-By: reynir <reynir@reynir.dk>
2021-02-23 15:20:18 +00:00
8d211dc831 Check database version
Exit if the application id and user version are not as expected.
2021-02-17 14:15:57 +01:00
1c5de383ea /hash takes query parameters, add hash search form 2021-02-02 17:23:57 +01:00
6b96cae318 Add /hash/:hash endpoint
It looks up the given hash and finds the latest build producing an
artifact with this hash.
2021-02-02 09:56:17 +01:00
3a106342f5 Show latest build info in jobs view
This does N+1 queries where N is the number of jobs.
2021-01-29 14:34:56 +01:00
53addf4825 Fix bug in /upload
The localpath was used instead of the filepath which broke the
reference.
2021-01-29 10:17:03 +01:00
96a3da36cd Show build main binary and hash in job view 2021-01-29 10:17:03 +01:00
56737ec71b Migration code, model aware of main binary
Sqlite3 application_id and user_version are now set to identify the
database is a builder-web database, and the user_version represents the
schema version.

The 'build' table is extended with a 'main_binary' column. This
represents the main binary artifact from the build. This is decided by
there being exactly one file in bin/.

A migration tool is written that does both migrations and rollbacks, and
migration and rollback is implemented for the above mentioned change.
2021-01-29 10:15:31 +01:00
a936915b74 Also add the new function to the interface... 2021-01-28 16:05:32 +00:00