aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-05-15 13:02:15 +0100
committerChristopher Baines <mail@cbaines.net>2024-05-15 14:33:23 +0100
commit3eaa40dfe2d6be4faef89801c938a9b9232f785d (patch)
tree0b6562153210c9bdfd92a5ebf1ebcf38a583df8c
parentaaceb4715a8d68443f96d6c35ead35a317846de6 (diff)
downloadqa-frontpage-3eaa40dfe2d6be4faef89801c938a9b9232f785d.tar
qa-frontpage-3eaa40dfe2d6be4faef89801c938a9b9232f785d.tar.gz
Submit builds in parallel via fibers
-rw-r--r--guix-qa-frontpage/manage-builds.scm51
-rw-r--r--guix-qa-frontpage/server.scm4
2 files changed, 29 insertions, 26 deletions
diff --git a/guix-qa-frontpage/manage-builds.scm b/guix-qa-frontpage/manage-builds.scm
index 5727648..18780d6 100644
--- a/guix-qa-frontpage/manage-builds.scm
+++ b/guix-qa-frontpage/manage-builds.scm
@@ -33,6 +33,9 @@
default-branch-priority-for-change
submit-builds-for-branch
+ submit-build
+ %fiberized-submit-build
+
start-submit-patch-builds-fiber
start-submit-branch-builds-fiber
start-submit-master-branch-system-tests-thread))
@@ -54,6 +57,9 @@
(* (length %systems-to-submit-builds-for)
600))
+(define %fiberized-submit-build
+ (make-parameter #f))
+
(define* (submit-builds-for-issue
database
build-coordinator
@@ -305,8 +311,7 @@
branch
derivations-and-priorities
build-ids-to-keep-set
- target-commit
- #:threads 4)))
+ target-commit)))
(begin
(simple-format
(current-error-port)
@@ -342,8 +347,7 @@
branch
derivations-and-priorities
(set)
- branch-commit
- #:threads 4)))))
+ branch-commit)))))
(simple-format #t "no derivation changes url for branch ~A\n"
branch))))
@@ -712,33 +716,28 @@
build-ids-to-keep-set
target-commit
#:key build-limit
- (build-count-priority-penalty (const 0))
- (threads 1))
+ (build-count-priority-penalty (const 0)))
(define (submit-builds build-details
build-ids-to-keep-set)
+ (define submit-build/fiberized
+ (%fiberized-submit-build))
+
(define submit-single
(match-lambda
((derivation priority)
- (submit-build build-coordinator
- guix-data-service
- derivation
- #:priority priority
- #:tags
- `(((key . category)
- (value . package))
- ((key . ,category-name)
- (value . ,category-value))
- ((key . revision)
- (value . ,target-commit)))))))
-
- (if (= threads 1)
- (for-each
- submit-single
- build-details)
- (n-par-for-each
- threads
- submit-single
- build-details)))
+ (submit-build/fiberized build-coordinator
+ guix-data-service
+ derivation
+ #:priority priority
+ #:tags
+ `(((key . category)
+ (value . package))
+ ((key . ,category-name)
+ (value . ,category-value))
+ ((key . revision)
+ (value . ,target-commit)))))))
+
+ (fibers-for-each submit-single build-details))
(let ((builds-to-submit-count
(length derivations-and-priorities)))
diff --git a/guix-qa-frontpage/server.scm b/guix-qa-frontpage/server.scm
index 22ad477..dba8e61 100644
--- a/guix-qa-frontpage/server.scm
+++ b/guix-qa-frontpage/server.scm
@@ -54,6 +54,7 @@
#:use-module (guix-qa-frontpage branch)
#:use-module (guix-qa-frontpage package)
#:use-module (guix-qa-frontpage issue)
+ #:use-module (guix-qa-frontpage utils)
#:use-module (guix-qa-frontpage git-repository)
#:use-module (guix-qa-frontpage manage-builds)
#:use-module (guix-qa-frontpage manage-patch-branches)
@@ -842,6 +843,9 @@ has no patches or has been closed.")
(run-fibers
(lambda ()
+ (%fiberized-submit-build
+ (fiberize submit-build #:parallelism 8))
+
(when submit-builds?
(start-submit-patch-builds-fiber database
"http://127.0.0.1:8746"