Show status in job overview

This commit is contained in:
Reynir Björnsson 2020-12-07 16:33:19 +01:00
parent cd1cdcc9bb
commit 355835df5e
2 changed files with 20 additions and 5 deletions

View file

@ -1,3 +1,3 @@
(library (library
(name builder_web) (name builder_web)
(libraries builder opium bos rresult duration)) (libraries builder opium tyxml bos rresult duration))

View file

@ -2,6 +2,15 @@ open Tyxml.Html
let txtf fmt = Fmt.kstrf txt fmt let txtf fmt = Fmt.kstrf txt fmt
let check_icon check =
if check
then
span ~a:[a_style "color: green;"]
[txt ""]
else
span ~a:[a_style "color: red;"]
[txt ""]
let layout ~title:title_ body_ = let layout ~title:title_ body_ =
html html
(head (title (txt title_)) (head (title (txt title_))
@ -33,7 +42,10 @@ let job name runs =
ul (List.map (fun run -> ul (List.map (fun run ->
li [ li [
a ~a:[a_href Fpath.(to_string (v "run" / Uuidm.to_string run.Model.uuid) ^ "/")] a ~a:[a_href Fpath.(to_string (v "run" / Uuidm.to_string run.Model.uuid) ^ "/")]
[txtf "%a" (Ptime.pp_human ()) run.Model.start]; [
txtf "%a" (Ptime.pp_human ()) run.Model.start;
check_icon (match run.result with Builder.Exited 0 -> true | _ -> false);
];
]) ])
runs); runs);
@ -42,12 +54,15 @@ let job name runs =
let job_run let job_run
{ Model.meta = { { Model.meta = {
Model.job_info = { Builder.name; _ }; Model.job_info = { Builder.name; _ };
uuid; result; _ }; start; finish; uuid; result };
out; _ } out; _ }
= =
let ptime_pp = Ptime.pp_human () in
let delta = Ptime.diff finish start in
layout ~title:(Printf.sprintf "Job run %s (%s)" name (Uuidm.to_string uuid)) layout ~title:(Printf.sprintf "Job run %s (%s)" name (Uuidm.to_string uuid))
[ h1 [txtf "Job build %s (%a)" name Uuidm.pp uuid]; [ h1 [txtf "Job build %s %a (%a)" name ptime_pp start Uuidm.pp uuid];
p [txtf "Status: %a" Builder.pp_execution_result result]; p [txtf "Took %a." Ptime.Span.pp delta ];
p [txtf "Status: %a." Builder.pp_execution_result result];
div (List.concat_map (fun (ts, line) -> div (List.concat_map (fun (ts, line) ->
[ [
code [txtf "%d ms %s" (Duration.to_ms (Int64.of_int ts)) line]; code [txtf "%d ms %s" (Duration.to_ms (Int64.of_int ts)) line];