aboutsummaryrefslogtreecommitdiff
path: root/guix-qa-frontpage
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-05-16 20:48:47 +0100
committerChristopher Baines <mail@cbaines.net>2023-05-16 20:48:47 +0100
commite3537c56e417d7a4dca5f77a062c066fe2d2391c (patch)
tree6aa04caaf70d0005d3d01ab44cc48fd2fbfea839 /guix-qa-frontpage
parente1cee556a9b20ab1f37869cd72b89cef0e9bae07 (diff)
downloadqa-frontpage-e3537c56e417d7a4dca5f77a062c066fe2d2391c.tar
qa-frontpage-e3537c56e417d7a4dca5f77a062c066fe2d2391c.tar.gz
Support submitting branch builds manually
Diffstat (limited to 'guix-qa-frontpage')
-rw-r--r--guix-qa-frontpage/manage-builds.scm108
1 files changed, 63 insertions, 45 deletions
diff --git a/guix-qa-frontpage/manage-builds.scm b/guix-qa-frontpage/manage-builds.scm
index 4aa01be..71decc1 100644
--- a/guix-qa-frontpage/manage-builds.scm
+++ b/guix-qa-frontpage/manage-builds.scm
@@ -16,6 +16,9 @@
submit-builds-for-issue
+ default-branch-priority-for-change
+ submit-builds-for-branch
+
start-submit-patch-builds-thread
start-submit-branch-builds-thread
start-submit-master-branch-system-tests-thread))
@@ -149,59 +152,74 @@
(sleep 300)))))
+
+(define (default-branch-priority-for-change change)
+ (if (member (assoc-ref change "system")
+ '("x86_64-linux" "aarch64-linux"))
+ 100
+ 0))
+
+
+(define* (submit-builds-for-branch database
+ build-coordinator
+ guix-data-service
+ branch
+ #:key build-limit
+ (priority default-branch-priority-for-change)
+ (systems %systems-to-submit-builds-for))
+ (simple-format #t
+ "considering submitting builds for branch ~A\n"
+ branch)
+
+ (let ((derivation-changes-url
+ (branch-derivation-changes-url
+ branch
+ #:systems systems)))
+
+ (if derivation-changes-url
+ (let ((derivation-changes-data
+ change-details
+ (with-sqlite-cache
+ database
+ 'branch-derivation-changes
+ derivation-changes
+ #:args
+ (list derivation-changes-url)
+ #:ttl 0)))
+
+ (when derivation-changes-data
+ (let ((target-commit
+ (assoc-ref
+ (assoc-ref
+ (assoc-ref change-details
+ "revisions")
+ "target")
+ "commit")))
+
+ (submit-builds-for-category build-coordinator
+ guix-data-service
+ 'branch
+ branch
+ derivation-changes-data
+ target-commit
+ #:priority priority
+ #:threads 4))))
+ (simple-format #t "no derivation changes url for branch ~A\n"
+ branch))))
+
(define (start-submit-branch-builds-thread database
build-coordinator
guix-data-service)
(define (submit-builds)
- (define (priority-for-change change)
- (if (member (assoc-ref change "system")
- '("x86_64-linux" "aarch64-linux"))
- 100
- 0))
-
(simple-format #t "submitting branch builds\n")
(let ((branches '()))
(for-each
(lambda (branch)
- (simple-format #t
- "considering submitting builds for branch ~A\n"
- branch)
-
- (let ((derivation-changes-url
- (branch-derivation-changes-url
- branch
- #:systems %systems-to-submit-builds-for)))
-
- (if derivation-changes-url
- (let ((derivation-changes-data
- change-details
- (with-sqlite-cache
- database
- 'branch-derivation-changes
- derivation-changes
- #:args
- (list derivation-changes-url)
- #:ttl 0)))
-
- (when derivation-changes-data
- (let ((target-commit
- (assoc-ref
- (assoc-ref
- (assoc-ref change-details
- "revisions")
- "target")
- "commit")))
-
- (submit-builds-for-category build-coordinator
- guix-data-service
- 'branch
- branch
- derivation-changes-data
- target-commit
- #:priority priority-for-change
- #:threads 4))))
- (simple-format #t "no derivation changes url for branch ~A\n"
- branch))))
+ (submit-builds-for-branch
+ database
+ build-coordinator
+ guix-data-service
+ branch))
branches)))
(call-with-new-thread