From 85970e249c982df2ec1b4b531efffde463820022 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 16 Feb 2026 13:00:44 +0300 Subject: [PATCH] fc-common: extend `BuildStatusFilter` with all status variants Signed-off-by: NotAShelf Change-Id: I58c8ebbe937035c2398af4eea0eaa3cf6a6a6964 --- crates/common/src/repo/search.rs | 18 ++++++++++++++++++ crates/server/src/routes/search.rs | 11 +++++++++++ 2 files changed, 29 insertions(+) diff --git a/crates/common/src/repo/search.rs b/crates/common/src/repo/search.rs index a3f7f25..ee6993b 100644 --- a/crates/common/src/repo/search.rs +++ b/crates/common/src/repo/search.rs @@ -49,6 +49,15 @@ pub enum BuildStatusFilter { Succeeded, Failed, Cancelled, + DependencyFailed, + Aborted, + FailedWithOutput, + Timeout, + CachedFailure, + UnsupportedSystem, + LogLimitExceeded, + NarSizeLimitExceeded, + NonDeterministic, } /// Search filters for builds @@ -411,6 +420,15 @@ async fn search_builds( BuildStatusFilter::Succeeded => "succeeded", BuildStatusFilter::Failed => "failed", BuildStatusFilter::Cancelled => "cancelled", + BuildStatusFilter::DependencyFailed => "dependency_failed", + BuildStatusFilter::Aborted => "aborted", + BuildStatusFilter::FailedWithOutput => "failed_with_output", + BuildStatusFilter::Timeout => "timeout", + BuildStatusFilter::CachedFailure => "cached_failure", + BuildStatusFilter::UnsupportedSystem => "unsupported_system", + BuildStatusFilter::LogLimitExceeded => "log_limit_exceeded", + BuildStatusFilter::NarSizeLimitExceeded => "nar_size_limit_exceeded", + BuildStatusFilter::NonDeterministic => "non_deterministic", }; query_builder.push(" AND status = "); query_builder.push_bind(status_str); diff --git a/crates/server/src/routes/search.rs b/crates/server/src/routes/search.rs index 75d72ff..d283c71 100644 --- a/crates/server/src/routes/search.rs +++ b/crates/server/src/routes/search.rs @@ -267,6 +267,17 @@ async fn advanced_search_handler( "succeeded" => Some(BuildStatusFilter::Succeeded), "failed" => Some(BuildStatusFilter::Failed), "cancelled" => Some(BuildStatusFilter::Cancelled), + "dependency_failed" => Some(BuildStatusFilter::DependencyFailed), + "aborted" => Some(BuildStatusFilter::Aborted), + "failed_with_output" => Some(BuildStatusFilter::FailedWithOutput), + "timeout" => Some(BuildStatusFilter::Timeout), + "cached_failure" => Some(BuildStatusFilter::CachedFailure), + "unsupported_system" => Some(BuildStatusFilter::UnsupportedSystem), + "log_limit_exceeded" => Some(BuildStatusFilter::LogLimitExceeded), + "nar_size_limit_exceeded" => { + Some(BuildStatusFilter::NarSizeLimitExceeded) + }, + "non_deterministic" => Some(BuildStatusFilter::NonDeterministic), _ => None, } });