aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-09-27 15:45:36 +0100
committerChristopher Baines <mail@cbaines.net>2020-09-27 15:45:36 +0100
commitff7861dffb3d0b05f24e19ba01b91963a184351b (patch)
tree30250578b63eef8b9645bff1e83a3d246cbba44a
parent44bb44556cc776fc4e26c1b8b2ccf69c9e80a5fc (diff)
downloadbuild-coordinator-ff7861dffb3d0b05f24e19ba01b91963a184351b.tar
build-coordinator-ff7861dffb3d0b05f24e19ba01b91963a184351b.tar.gz
Add command line argument to control building channel instances
-rw-r--r--scripts/guix-build-coordinator-queue-builds-from-guix-data-service.in51
1 files changed, 32 insertions, 19 deletions
diff --git a/scripts/guix-build-coordinator-queue-builds-from-guix-data-service.in b/scripts/guix-build-coordinator-queue-builds-from-guix-data-service.in
index 0bf3a1d..1357cd7 100644
--- a/scripts/guix-build-coordinator-queue-builds-from-guix-data-service.in
+++ b/scripts/guix-build-coordinator-queue-builds-from-guix-data-service.in
@@ -147,23 +147,26 @@
#:times 30
#:delay 30))
-(define (submit-builds-for-revision coordinator
- guix-data-service
- commit
- systems-and-targets)
+(define* (submit-builds-for-revision coordinator
+ guix-data-service
+ commit
+ systems-and-targets
+ #:key (submit-builds-for-channel-instances?
+ #t))
(simple-format #t "looking at revision ~A\n" commit)
(for-each
(match-lambda
((system . target)
(when (string=? target "none")
- (for-each (lambda (derivation)
- (submit-build coordinator
- guix-data-service
- derivation
- #:priority 1000))
- (channel-instance-derivations-for-commit guix-data-service
- commit
- system)))
+ (when submit-builds-for-channel-instances?
+ (for-each (lambda (derivation)
+ (submit-build coordinator
+ guix-data-service
+ derivation
+ #:priority 1000))
+ (channel-instance-derivations-for-commit guix-data-service
+ commit
+ system))))
(let ((unprocessed-package-derivations
(filter (lambda (derivation)
@@ -194,6 +197,12 @@
`((,system . ,target)
,@(or (assq-ref result 'systems-and-targets) '()))))
(alist-delete 'systems-and-targets result))))
+ (option '("fetch-channel-instance-derivations") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'fetch-channel-instance-derivations
+ (string=? arg "yes")
+ (alist-delete 'fetch-channel-instance-derivations
+ result))))
(option '("coordinator") #t #f
(lambda (opt name arg result)
(alist-cons 'coordinator
@@ -211,9 +220,10 @@
(alist-delete 'processed-commits-file result))))))
(define %option-defaults
- '((coordinator . "http://127.0.0.1:8746")
- (guix-data-service . "https://data.guix.gnu.org")
- (processed-commits-file . "processed-revisions")))
+ '((coordinator . "http://127.0.0.1:8746")
+ (guix-data-service . "https://data.guix.gnu.org")
+ (processed-commits-file . "processed-revisions")
+ (fetch-channel-instance-derivations . #t)))
(define (parse-options options defaults args)
(args-fold
@@ -271,10 +281,13 @@
(while #t
(for-each (lambda (commit)
- (submit-builds-for-revision (assq-ref opts 'coordinator)
- guix-data-service
- commit
- systems-and-targets)
+ (submit-builds-for-revision
+ (assq-ref opts 'coordinator)
+ guix-data-service
+ commit
+ systems-and-targets
+ #:submit-builds-for-channel-instances?
+ (assq-ref opts 'fetch-channel-instance-derivations))
(record-revision-as-processed processed-commits-file commit))
(unseen-revisions guix-data-service))