Commit graph

264 commits

Author SHA1 Message Date
f4da9ad666 In Opamdiff.compare, do not figure out unchanged packages.
In the View.compare_builds (/compare/..), do not display
"XX opam packages unchanged".

The reasoning is that the diff view concerns:
(a) opam packages
(b) environment variables
(c) system packages

And we're only interested in what changed in each category. The list of
unchanged opam packages is not really of interest, but adds quite some noise to
the page.
2022-08-05 11:16:21 +02:00
e253848a15 Rely on the default error page triggering for 404s
It is not immediately obvious how to avoid the error handler making a
different 404 response when the application code returns an explicit 404
page. Since we were already replying "Resource not found" in all cases
except one where we reply "File not found" not much is lost by relying
on the error handler behavior.
2022-07-15 11:16:01 +02:00
234c7a0cb2 Refactor not found logic 2022-07-15 11:13:11 +02:00
9416e0552d error_handler: only show not found for `Not_Found
For all other error status codes we just pass on the suggested response.
2022-07-15 10:51:57 +02:00
rand00
f3d8eea546 Fixed unused param + simplification 2022-07-15 10:51:57 +02:00
rand00
ffc062727a Views: Cleanup 2022-07-15 10:51:57 +02:00
rand00
3e23b4a5bf Implemented general error-handler + Added special error-page for iframes/vizs 2022-07-15 10:51:57 +02:00
76f96b47b2 map_err and bind_lwt_err will be deprecated with lwt.5.6.0 2022-07-12 13:23:23 +02:00
cb43734b7b Refactor and address #127 2022-07-12 13:14:52 +02:00
rand00
148ddacbe8 Add tests for router/Link module 2022-07-12 13:14:52 +02:00
rand00
c533ea7c07 Made Builder_web.routes be a list of methods, routes and handlers - to become testable without depending on DB 2022-07-12 13:14:52 +02:00
rand00
93dc0d6d87 Made all links safe via a Links module 2022-07-12 13:14:52 +02:00
0be38475b7 builder-web: Inform expected version on wrong ver. (#121)
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/121
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Co-committed-by: Reynir Björnsson <reynir@reynir.dk>
2022-06-22 08:20:29 +00:00
071183ff6c Add GZip support when we generate a tar archive (#119)
Fixes #116.

Co-authored-by: Romain Calascibetta <romain.calascibetta@gmail.com>
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/119
Co-authored-by: dinosaure <romain.calascibetta@gmail.com>
Co-committed-by: dinosaure <romain.calascibetta@gmail.com>
2022-06-21 15:17:50 +00:00
rand
5307a7b91a add builder-db verify-cache-dir command (#113)
Co-authored-by: rand00 <oth.rand@gmail.com>
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/113
Co-authored-by: rand <rand@r7p5.earth>
Co-committed-by: rand <rand@r7p5.earth>
2022-06-16 09:03:05 +00:00
09a180c3cd Automatic viz migration on builder-web startup (#111)
Co-authored-by: rand00 <oth.rand@gmail.com>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/111
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Co-committed-by: Reynir Björnsson <reynir@reynir.dk>
2022-06-08 10:18:46 +00:00
702d38a6cc Use Not found for missing visualizations 2022-04-22 12:41:55 +01:00
3de78b1113 Update to dream.1.0.0~alpha4
- Dream.path is deprecated. For now the deprecation is suppressed.

- Remove unused dream_svg.

- Remove datadir global. The datadir variable is in scope already, and
  global variables were removed in alpha3.

- Dream_tar.tar_response: flush before closing. It's unclear if this is
  necessary.

- Change Builder_web.add_routes to Builder_web.routes returning a list
  of routes, and in Builder_web_app construct the router.

- Builder_web.not_found is removed due to changes in Dream.router. It
  seems an error handler might be the way forward.
2022-04-22 12:37:01 +01:00
6190347401 use ignorelist to transmit the intention 2022-04-21 20:55:19 +02:00
rand
0f493e9b47 Removing trailing slashes (#80)
This PR solves the issue of there being both "<url>/" and "<url>" paths, that in the builder-web context shouldn't mean different things.

The slashes are now removed using a `Dream` middleware, and the request is redirected using a permanent redirect (that doesn't change the method used): https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location

Notable changes:
* Trailing slashes from the hardcoded link urls were removed, as unneccesary redirects are then avoided.
* All links in `Views` were rewritten to be absolute instead of relative.
* As `Dream` deprecated `path` - `Utils.Path` was created containing some helpers for manipulating paths. *Note that `String.split_on_char` has a different semantics.*
* A blacklist `routeprefix_blacklist_when_removing_trailing_slash` was added, containing `Dream` route-prefixes to ignore.
* Only `GET` and `HEAD` requests are redirected.
* `redirect_parent` helper was rewritten using new `Utils.Path` functions to avoid brittle string manipulation + fixed the edgecase of redirecting to `/`.
* Added `Uri` dependency to make URL manipulation safer.

Co-authored-by: rand00 <oth.rand@gmail.com>
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/80
Co-authored-by: rand <rand@r7p5.earth>
Co-committed-by: rand <rand@r7p5.earth>
2022-04-21 10:40:21 +00:00
rand00
010197d900 Builder_web: Fixed type-errors + usage of correct dream queries helper 2022-04-11 18:19:54 +02:00
rand00
8f173295ab Merge branch 'main' into redirect-job-and-build 2022-04-11 18:13:12 +02:00
a132a181c8 add ? before query parameters 2022-04-11 17:08:10 +02:00
3bee8a357d add query params to redirect 2022-04-11 16:54:28 +02:00
4c3a5986d6 Redirect /job to / and /job/:job/build to /job/:job
replaces #81
2022-04-11 16:23:45 +02:00
rand00
1207ddbf70 Merge branch 'main' into 20220329_passing_separate_cache-dir 2022-04-06 13:31:42 +02:00
rand
258ffbd979 Merge branch 'main' into 20220325_viz_descriptions 2022-03-30 10:26:00 +00:00
rand00
ab3be6ec8e builder-web: Added --cachedir CLI arg for staging new vizs 2022-03-29 22:27:24 +02:00
rand00
1827320f8c Builder_web: Removed boilerplate for generating vizs 2022-03-29 14:00:13 +02:00
rand00
ef253b7b87 Views: Added usage-descriptions on mouse-over on '?' below each visualzation (not mobile compatible) 2022-03-29 12:56:11 +02:00
rand00
d90cbea35c Views: Removed visual border from viz iframes + size fix 2022-03-23 20:38:22 +01:00
eef8e54776 Include more information on the front page, especially how unikernels can be executed. 2022-03-03 11:36:09 +01:00
Robur
9cf112a9ac Fix error when reading solo5 manifest
Also simplify solo5 manifest code.
2022-02-25 11:21:16 +00:00
d6098cfa91 minor stylistic adjustments from reading git diff -w 0afec16..6f3c89c 2022-02-24 14:05:06 +01:00
6f3c89c91d display visualizations from cache, generate visualizations on upload (#90)
This is #88 (reading visualiations from the cache directory), together with shell scripts that can be used as upload hooks to generate the visualizations.

Co-authored-by: rand00 <oth.rand@gmail.com>
Co-authored-by: Hannes Mehnert <hannes@mehnert.org>
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Co-authored-by: Robur <team@robur.coop>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/90
Co-authored-by: hannes <hannes@mehnert.org>
Co-committed-by: hannes <hannes@mehnert.org>
2022-02-24 11:52:05 +00:00
923bc3d9d4 Add Solo5 device manifest to job_build
A user browsing a build can view what network and block devices the
unikernel expects before downloading the unikernel.
2022-02-23 14:09:09 +00:00
Robur
72393c9098 Model.add_build: pass --platform=<build-platform> to hook scripts 2022-02-21 14:50:41 +00:00
f7bc55f2e3 execute all executables in <conigdir>/upload-hooks when an upload succeeded
Only uploads with a single main binary invoke the hooks (since they use the
main_binary)
2022-02-21 13:05:16 +00:00
rand00
550dd59a19 Builder-web: Implemented better page-not-found 2022-02-21 12:13:51 +00:00
rand00
9333773335 Views: Fixed issue #70: Platform query-param is preserved in Job links 2022-02-08 10:54:13 +00:00
d89c5f5a1b Unify layout, centered horizontally
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/74
2022-02-07 15:38:12 +00:00
43b9bf93ed Remove trailing whitespace 2022-02-07 13:51:56 +00:00
rand00
a601c143d6 Views.Job_build: Fixed for 80-col rule 2022-02-03 20:15:14 +01:00
rand00
7633b63f21 Views.Job_build: Avoiding too much indentation with current ocp-indent settings via less nesting 2022-02-03 20:11:36 +01:00
rand00
cb11326cd4 Views.Job_build: Separated body html out into named functions 2022-02-03 20:06:55 +01:00
rand00
a28b0829b3 .ocp-indent & Views: Changed max_indent to 4 - the default 2022-02-03 19:39:51 +01:00
rand00
5a6ce19c33 Views.Job: Separated nested list-generation out into named functions 2022-02-03 14:50:17 +01:00
rand00
f0632dff6f Views: More syntax + separated out failed-builds footer in Builds 2022-02-03 14:42:33 +01:00
rand00
b0fc7c1d9d Views.breadcrumbs: Consistent style of multiline tuples in list 2022-02-03 14:38:48 +01:00
rand00
f1214e01a3 Views: Syntax betterings for readability 2022-02-03 14:32:04 +01:00
rand00
82bcdf9f3b Views: Removed some opened records in parameters -
.. prefix with record-name is more safe and less cumbersome
2022-02-03 14:06:11 +01:00
rand00
126fe38465 Views: Configured .ocp-indent.conf to sensible defaults, and indented everything with this. Settings are:
normal
base = 2
type = 2
in = 0
with = 0
match_clause = 2
ppx_stritem_ext = 2
max_indent = 2
strict_with = never
strict_else = always
strict_comments = false
align_ops = true
align_params = auto
2022-02-03 14:00:24 +01:00
rand00
87442c4a09 Views: Builds: Separated html-generation out into named functions for ease of reading 2022-02-03 13:50:37 +01:00
rand00
b631b05de2 Views: Syntax 2022-02-03 13:28:16 +01:00
rand00
db3f87934b Views++: Made long parameter-lists into named parameters 2022-02-03 13:27:22 +01:00
rand00
3680336b22 Views: Removed outcommented + fixed some 80-col problems 2022-02-03 12:57:21 +01:00
rand00
f8b17e6b17 Views: Removed global open of Tyxml.Html and switched to prefix -
.. there are too many common names in this modules scope, and code gets easier to understand
 .. also I don't think global open is a good idea in general for this kind of module, so better
    to fix this style now than be sorry later
2022-02-03 12:54:02 +01:00
rand00
ae5c5cb67d Views: Using ocp-indent to indent everything consistently + fixed code aesthetics (80 char rule etc.) 2022-02-02 23:27:25 +01:00
rand00
c17802d84f Views++: Factored Job.Build to Job_build + Renamed Builder to Builds to avoid collision with lib 2022-02-02 23:03:16 +01:00
rand00
7358567e55 Utils: Moved omd-helpers into Omd submodule here 2022-02-02 22:59:32 +01:00
rand
f3aa2a2c90 Safer Lwt_process usage for calling builder-viz cmd (#71)
Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Co-authored-by: rand00 <oth.rand@gmail.com>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/71
Co-authored-by: rand <rand@r7p5.earth>
Co-committed-by: rand <rand@r7p5.earth>
2022-02-02 14:50:44 +00:00
6a645b7358 Merge branch 'tar' 2022-02-01 12:21:56 +00:00
3fe07c7b34 Clean up trailing spaces 2022-02-01 11:43:07 +00:00
rand00
d6c04e861e Views: Removed usage of containers 2022-02-01 11:30:44 +00:00
rand00
161fec77af Views: Using Option.of_list 2022-02-01 11:30:44 +00:00
rand00
b564191b81 Re-enabled warnings as errors in dune file + fixed unused 'id' in builder_web.ml 2022-02-01 11:30:44 +00:00
rand00
8897f525fe Builder_web: visualization_cmd: Changed bin to be 'builder-viz' + let it be searched in PATH 2022-02-01 11:30:44 +00:00
rand00
5a9c1237a1 Builder_web: Added timeout to visualization_cmd Lwt_process.pread 2022-02-01 11:30:44 +00:00
rand00
2a1b75ba2b Removals of uncommented code and unneccesary parens 2022-02-01 11:30:44 +00:00
rand00
6f95f7e965 Views: Switch viz order + fixed iframe size 2022-02-01 11:30:44 +00:00
rand00
86b5bf870d Builder_web.treemap_visualization_cmd: More informative param-name 2022-02-01 11:30:44 +00:00
rand00
1bba2d7855 Views: Adjusted height of deps viz iframe again 2022-02-01 11:30:44 +00:00
rand00
c80ee590bd New centered flex-layout for builds page with 2 columns + some refactorings around Views 2022-02-01 11:30:44 +00:00
rand00
915468bbf1 Views: Adjusted height of deps viz iframe 2022-02-01 11:30:44 +00:00
rand00
48ba9b7bfe Views: Also rendering dependencies for non-binary packages 2022-02-01 11:30:44 +00:00
rand00
64cf4fc350 Added dependencies visualization to builds pages 2022-02-01 11:30:44 +00:00
rand00
dde9d5b2da Builder_web.job_build_treemap: Calculating treemap visualization via CLI call to new binary
.. this doesn't block server on requests, as Lwt IO is run in parallel
2022-02-01 11:30:44 +00:00
rand00
afbf9357b0 lib/dune: Added opam-graph 2022-02-01 11:30:44 +00:00
rand00
6658244a18 Views: Only rendering treemap for unikernels with '.debug' artifact 2022-02-01 11:30:44 +00:00
rand00
ade1ea3a38 Builder_web.job_build_treemap: Changed title of excluded treemap chunks 2022-02-01 11:30:44 +00:00
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