diff options
author | Christopher Baines <mail@cbaines.net> | 2023-05-23 08:25:53 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-05-23 08:25:53 +0100 |
commit | 9091d6c5722a6f0ec9ab1bd184d874b34bca239e (patch) | |
tree | 17b32dee1cc0228e27560788ddc78e7d5972f95b /guix-qa-frontpage/manage-builds.scm | |
parent | 4997e2190184d9421fdf4c49a20d920b2d73080e (diff) | |
download | qa-frontpage-9091d6c5722a6f0ec9ab1bd184d874b34bca239e.tar qa-frontpage-9091d6c5722a6f0ec9ab1bd184d874b34bca239e.tar.gz |
Update and re-enable cancelling builds
This will need some monitoring to make sure it doesn't negatively affect the
build coordinator.
Diffstat (limited to 'guix-qa-frontpage/manage-builds.scm')
-rw-r--r-- | guix-qa-frontpage/manage-builds.scm | 51 |
1 files changed, 20 insertions, 31 deletions
diff --git a/guix-qa-frontpage/manage-builds.scm b/guix-qa-frontpage/manage-builds.scm index cb235b7..1487c77 100644 --- a/guix-qa-frontpage/manage-builds.scm +++ b/guix-qa-frontpage/manage-builds.scm @@ -2,6 +2,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-71) #:use-module (ice-9 match) + #:use-module (ice-9 streams) #:use-module (ice-9 threads) #:use-module (guix sets) #:use-module (guix-build-coordinator utils) @@ -282,26 +283,19 @@ #:delay 30)) (define (for-each-build build-coordinator proc . criteria) - (define (builds-after id) - (vector->list - (assoc-ref - (apply request-builds-list - build-coordinator - (append criteria - `(#:limit 1000 - #:after-id ,id))) - "builds"))) - - (let loop ((builds (builds-after #f))) - (for-each proc builds) - (unless (null? builds) - (let ((next-builds - (builds-after - (assoc-ref (last builds) "uuid")))) - (loop - (if (null? next-builds) - (builds-after #f) - next-builds)))))) + (define (process-batch) + (stream-for-each + (lambda (build result) + (proc build) + (+1 result)) + 0 + (apply request-builds-list + build-coordinator + criteria))) + + (let loop ((batch-size (process-batch))) + (unless (= 0 batch-size) + (loop (process-batch))))) (define (cancel-builds-not-for-revision build-coordinator category-name @@ -395,17 +389,12 @@ submit-single build-details)) - ;; TODO Don't currently cancel builds - ;; I think this approach has some problems and needs more thinking about. - ;; - ;; (cancel-builds-not-for-revision - ;; build-coordinator - ;; category-name - ;; category-value - ;; target-commit - ;; build-ids-to-keep-set) - - ) + (cancel-builds-not-for-revision + build-coordinator + category-name + category-value + target-commit + build-ids-to-keep-set)) (let loop ((changes (append-map! (lambda (package) |