diff options
Diffstat (limited to 'guix-data-service/model/build.scm')
-rw-r--r-- | guix-data-service/model/build.scm | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/guix-data-service/model/build.scm b/guix-data-service/model/build.scm index 5c943a6..7f1d2fa 100644 --- a/guix-data-service/model/build.scm +++ b/guix-data-service/model/build.scm @@ -13,7 +13,9 @@ insert-build ensure-build-exists)) -(define* (select-build-stats conn build-servers #:key revision-commit) +(define* (select-build-stats conn build-servers + #:key revision-commit + system target) (define criteria `(,@(if revision-commit ;; Ignore cross built derivations, as I'm not aware of a build server @@ -30,6 +32,12 @@ '()) ,@(if revision-commit '("guix_revisions.commit = $1") + '()) + ,@(if system + '("package_derivations.system = $2") + '()) + ,@(if target + '("package_derivations.target = $3") '()))) (define query @@ -85,10 +93,17 @@ ORDER BY status")) query `(,@(if revision-commit (list revision-commit) + '()) + ,@(if system + (list system) + '()) + ,@(if target + (list target) '())))))) (define* (select-builds-with-context conn build-statuses build-server-ids - #:key revision-commit) + #:key revision-commit + system target) (define where-conditions (filter string? @@ -106,7 +121,11 @@ ORDER BY status")) ", ") ")")) (when revision-commit - "guix_revisions.commit = $1")))) + "guix_revisions.commit = $1") + (when system + "package_derivations.system = $2") + (when target + "package_derivations.target = $3")))) (define query (string-append @@ -146,9 +165,15 @@ LIMIT 100")) (exec-query conn query - (if revision-commit - (list revision-commit) - '()))) + `(,@(if revision-commit + (list revision-commit) + '()) + ,@(if system + (list system) + '()) + ,@(if target + (list target) + '())))) (define (select-builds-with-context-by-derivation-file-name conn derivation-file-name) |