fc-server: update web UI to display extended build statuses

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8cf767e7ed34153eedf6d1fd56a6c2016a6a6964
This commit is contained in:
raf 2026-02-16 13:01:26 +03:00
commit 7378d618b1
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
2 changed files with 34 additions and 2 deletions

View file

@ -61,11 +61,24 @@ async fn build_badge(
let (label, color) = match build {
Some(b) => {
match b.status {
fc_common::BuildStatus::Completed => ("passing", "#4c1"),
fc_common::BuildStatus::Succeeded => ("passing", "#4c1"),
fc_common::BuildStatus::Failed => ("failing", "#e05d44"),
fc_common::BuildStatus::Running => ("building", "#dfb317"),
fc_common::BuildStatus::Pending => ("queued", "#dfb317"),
fc_common::BuildStatus::Cancelled => ("cancelled", "#9f9f9f"),
fc_common::BuildStatus::DependencyFailed => ("dep failed", "#e05d44"),
fc_common::BuildStatus::Aborted => ("aborted", "#9f9f9f"),
fc_common::BuildStatus::FailedWithOutput => {
("failed output", "#e05d44")
},
fc_common::BuildStatus::Timeout => ("timeout", "#e05d44"),
fc_common::BuildStatus::CachedFailure => ("cached fail", "#e05d44"),
fc_common::BuildStatus::UnsupportedSystem => ("unsupported", "#9f9f9f"),
fc_common::BuildStatus::LogLimitExceeded => ("log limit", "#e05d44"),
fc_common::BuildStatus::NarSizeLimitExceeded => {
("nar limit", "#e05d44")
},
fc_common::BuildStatus::NonDeterministic => ("non-det", "#e05d44"),
}
},
None => ("not found", "#9f9f9f"),

View file

@ -207,11 +207,30 @@ fn eval_view_with_context(
fn status_badge(s: &BuildStatus) -> (String, String) {
match s {
BuildStatus::Completed => ("Completed".into(), "completed".into()),
BuildStatus::Succeeded => ("Succeeded".into(), "succeeded".into()),
BuildStatus::Failed => ("Failed".into(), "failed".into()),
BuildStatus::Running => ("Running".into(), "running".into()),
BuildStatus::Pending => ("Pending".into(), "pending".into()),
BuildStatus::Cancelled => ("Cancelled".into(), "cancelled".into()),
BuildStatus::DependencyFailed => {
("Dependency Failed".into(), "failed".into())
},
BuildStatus::Aborted => ("Aborted".into(), "aborted".into()),
BuildStatus::FailedWithOutput => {
("Failed w/ Output".into(), "failed".into())
},
BuildStatus::Timeout => ("Timeout".into(), "failed".into()),
BuildStatus::CachedFailure => ("Cached Failure".into(), "failed".into()),
BuildStatus::UnsupportedSystem => {
("Unsupported System".into(), "skipped".into())
},
BuildStatus::LogLimitExceeded => ("Log Limit".into(), "failed".into()),
BuildStatus::NarSizeLimitExceeded => {
("NAR Size Limit".into(), "failed".into())
},
BuildStatus::NonDeterministic => {
("Non-deterministic".into(), "failed".into())
},
}
}