diff options
author | Christopher Baines <mail@cbaines.net> | 2024-05-15 13:02:15 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-05-15 14:33:23 +0100 |
commit | 3eaa40dfe2d6be4faef89801c938a9b9232f785d (patch) | |
tree | 0b6562153210c9bdfd92a5ebf1ebcf38a583df8c | |
parent | aaceb4715a8d68443f96d6c35ead35a317846de6 (diff) | |
download | qa-frontpage-3eaa40dfe2d6be4faef89801c938a9b9232f785d.tar qa-frontpage-3eaa40dfe2d6be4faef89801c938a9b9232f785d.tar.gz |
Submit builds in parallel via fibers
-rw-r--r-- | guix-qa-frontpage/manage-builds.scm | 51 | ||||
-rw-r--r-- | guix-qa-frontpage/server.scm | 4 |
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" |