feat: log start time and duration in run log

Signed-off-by: Lars Wirzenius <liw@liw.fi>
This commit is contained in:
Lars Wirzenius
2024-12-09 10:34:22 +02:00
parent 27712152d9
commit 215dbf3d6b
2 changed files with 35 additions and 1 deletions
+6 -1
View File
@@ -1,4 +1,7 @@
use std::{path::Path, time::SystemTime};
use std::{
path::Path,
time::{Duration, SystemTime},
};
use radicle_ci_broker::msg::{Oid, RepoId, RunId};
@@ -7,6 +10,8 @@ use radicle_native_ci::{runlog::RunLog, runspec::RunSpec};
/// The main program.
fn main() {
let mut run_log = RunLog::new(Path::new("testlog.html"));
run_log.started(SystemTime::now());
run_log.duration(Duration::from_millis(500));
run_log.adapter_run_id(RunId::from("plugh"));
run_log.title("Some Title");
run_log.rid(
+29
View File
@@ -29,6 +29,8 @@ pub struct RunLog {
runspec: Option<RunSpec>,
runspec_error: Option<String>,
adapter_run_id: Option<RunId>,
started: Option<SystemTime>,
duration: Option<Duration>,
}
impl RunLog {
@@ -80,6 +82,14 @@ impl RunLog {
self.runspec_error = Some(format!("{}", e));
}
pub fn started(&mut self, ts: SystemTime) {
self.started = Some(ts);
}
pub fn duration(&mut self, dur: Duration) {
self.duration = Some(dur);
}
// FIXME: refactor this to maybe use a builder pattern?
#[allow(clippy::too_many_arguments)]
pub fn runcmd(
@@ -155,6 +165,25 @@ impl RunLog {
} else {
Element::new(Tag::Span)
})
.with_child({
let ts = if let Some(ts) = &self.started {
Element::new(Tag::Span).with_text(&timestamp(ts))
} else {
Element::new(Tag::Span)
};
Element::new(Tag::Li).with_text("Started: ").with_child(ts)
})
.with_child({
let dur = if let Some(dur) = &self.duration {
Element::new(Tag::Span).with_text(&format!("{:1}", dur.as_secs_f64()))
} else {
Element::new(Tag::Span)
};
Element::new(Tag::Li)
.with_text("Duration: ")
.with_child(dur)
.with_text(" s")
})
.with_child(
Element::new(Tag::Li)
.with_text("Result: ")