diff options
author | Christopher Baines <mail@cbaines.net> | 2020-07-13 18:55:50 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-07-13 18:55:50 +0100 |
commit | a1af644310bcd550a00851b442c0727f5d30c9a7 (patch) | |
tree | 0cd486eb8a80f635d92ce850efd32d7c14d286a1 | |
parent | 745a8bdbf13c83822db4ed9db18fadbef2bc3b4c (diff) | |
download | data-service-a1af644310bcd550a00851b442c0727f5d30c9a7.tar data-service-a1af644310bcd550a00851b442c0727f5d30c9a7.tar.gz |
Change select-required-builds-that-failed to exclude succeeded builds
Only include a failed build if that build server hasn't had any success
building that output. The Guix Build Coordinator can build one output with
many different builds, so this helps avoid showing lots of spurious failures.
-rw-r--r-- | guix-data-service/model/build.scm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/guix-data-service/model/build.scm b/guix-data-service/model/build.scm index 686e08d..96a3ab8 100644 --- a/guix-data-service/model/build.scm +++ b/guix-data-service/model/build.scm @@ -371,7 +371,17 @@ LEFT OUTER JOIN ( ORDER BY build_id, id DESC ) AS latest_build_status ON builds.id = latest_build_status.build_id -WHERE latest_build_status.status = 'failed'") +WHERE latest_build_status.status = 'failed' + AND NOT EXISTS ( + SELECT 1 + FROM builds AS successful_builds + INNER JOIN build_status AS successful_builds_build_status + ON successful_builds.id = successful_builds_build_status.build_id + WHERE successful_builds.derivation_output_details_set_id = + builds.derivation_output_details_set_id + AND successful_builds.build_server_id = $2 + AND successful_builds_build_status.status = 'succeeded' + )") (exec-query conn query |