fc-common: extend BuildStatusFilter with all status variants

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I58c8ebbe937035c2398af4eea0eaa3cf6a6a6964
This commit is contained in:
raf 2026-02-16 13:00:44 +03:00
commit 85970e249c
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
2 changed files with 29 additions and 0 deletions

View file

@ -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);

View file

@ -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,
}
});