summaryrefslogtreecommitdiffstats
path: root/src/commands/build.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-14 09:10:04 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-14 09:10:04 +0100
commit0634952adde51f2f6a2ed8e4faa9ffee63f2bb3a (patch)
tree01e74e4a75785247db49b3ffa9e64c6fa8bc3432 /src/commands/build.rs
parentfbb00f783a5a42e59a20c3097c27a038242e06c9 (diff)
Report phase in which a job errored, if it errored
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/commands/build.rs')
-rw-r--r--src/commands/build.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/commands/build.rs b/src/commands/build.rs
index 5aae1bb..f854026 100644
--- a/src/commands/build.rs
+++ b/src/commands/build.rs
@@ -316,13 +316,23 @@ pub async fn build(repo_root: &Path,
writeln!(outlock, "for package {} {}\n\n", data.1.name, data.1.version)?;
let parsed_log = crate::log::ParsedLog::build_from(&data.0.log_text)?;
+ let mut last_phase = None;
+ let mut error_catched = false;
let lines = parsed_log.iter()
.map(|line_item| match line_item {
LogItem::Line(s) => Ok(String::from_utf8(s.to_vec())?.normal()),
LogItem::Progress(u) => Ok(format!("#BUTIDO:PROGRESS:{}", u).bright_black()),
- LogItem::CurrentPhase(p) => Ok(format!("#BUTIDO:PHASE:{}", p).bright_black()),
+ LogItem::CurrentPhase(p) => {
+ if !error_catched {
+ last_phase = Some(p.clone());
+ }
+ Ok(format!("#BUTIDO:PHASE:{}", p).bright_black())
+ },
LogItem::State(Ok(())) => Ok(format!("#BUTIDO:STATE:OK").green()),
- LogItem::State(Err(s)) => Ok(format!("#BUTIDO:STATE:ERR:{}", s).red()),
+ LogItem::State(Err(s)) => {
+ error_catched = true;
+ Ok(format!("#BUTIDO:STATE:ERR:{}", s).red())
+ },
})
.collect::<Result<Vec<_>>>()?;
@@ -336,6 +346,10 @@ pub async fn build(repo_root: &Path,
.collect::<Result<()>>()?;
writeln!(outlock, "\n\n")?;
+ if let Some(last_phase) = last_phase {
+ writeln!(outlock, "\tJob errored in Phase '{}'", last_phase)?;
+ }
+ writeln!(outlock, "\n\n")?;
}
if had_error {