diff options
author | Christopher Baines <mail@cbaines.net> | 2023-10-18 10:11:41 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-10-18 10:25:14 +0100 |
commit | e95a7a7aa0c9a3a66eeef6c9c2b5c5cc200248d5 (patch) | |
tree | 240595b9f6355d0ec1f96dcd0823fe03dfb58613 /guix-qa-frontpage/manage-patch-branches.scm | |
parent | b39bbbb297033b34d9812bd02e54f545d50ec971 (diff) | |
download | qa-frontpage-e95a7a7aa0c9a3a66eeef6c9c2b5c5cc200248d5.tar qa-frontpage-e95a7a7aa0c9a3a66eeef6c9c2b5c5cc200248d5.tar.gz |
Rework managing patch branches
Delete branches which no longer appear in the latest patchwork series and
simplify some of the code.
Diffstat (limited to 'guix-qa-frontpage/manage-patch-branches.scm')
-rw-r--r-- | guix-qa-frontpage/manage-patch-branches.scm | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/guix-qa-frontpage/manage-patch-branches.scm b/guix-qa-frontpage/manage-patch-branches.scm index fd7188a..fb2d503 100644 --- a/guix-qa-frontpage/manage-patch-branches.scm +++ b/guix-qa-frontpage/manage-patch-branches.scm @@ -298,6 +298,13 @@ (let ((issue-numbers (map string->number (issue-numbers-for-branches))) + (all-patchwork-series + (with-sqlite-cache + database + 'latest-patchwork-series-by-issue + latest-patchwork-series-by-issue + #:args `(#:count ,series-count) + #:ttl 120)) (latest-master-revision (get-latest-processed-branch-revision "master"))) @@ -326,6 +333,14 @@ issue-number) #t) #f) + (if (not (assq-ref all-patchwork-series issue-number)) + (begin + (simple-format + (current-error-port) + "Removing ~A, issue no longer in latest-patchwork-series-by-issue\n" + issue-number) + #t) + #f) (let ((base-commit (assq-ref (get-issue-branch-base-and-target-refs issue-number) @@ -385,30 +400,16 @@ issue-numbers)) (simple-format #t "finished checking for branches to delete\n") - (let* ((all-patchwork-series + (let* ((issue-numbers + (map string->number + (issue-numbers-for-branches))) + (all-patchwork-series (with-sqlite-cache database 'latest-patchwork-series-by-issue latest-patchwork-series-by-issue #:args `(#:count ,series-count) - #:ttl 120)) - (issue-numbers - (map string->number - (issue-numbers-for-branches))) - (series-to-create-branches-for - (let ((recent-series - (take all-patchwork-series - series-count))) - (append - recent-series - (filter-map - (lambda (issue-number) - (if (assq-ref recent-series issue-number) - #f - (cons issue-number - (assq-ref all-patchwork-series - issue-number)))) - issue-numbers))))) + #:ttl 120))) (for-each (match-lambda ((issue-number . patchwork-series) @@ -456,11 +457,12 @@ (assoc-ref patchwork-series "id")))) #:unwind? #t)))) - series-to-create-branches-for) + all-patchwork-series) (simple-format (current-error-port) - "finished processing patch branches (last issue: ~A)\n" - (car (last series-to-create-branches-for))))) + "finished processing patch branches (first: ~A, last: ~A)\n" + (car (first all-patchwork-series)) + (car (last all-patchwork-series))))) (setenv "GIT_SSH_COMMAND" "ssh -o StrictHostKeyChecking=no") |