branch: main
commit ce74a1f751f8f63d613125e0a8b377c70811286c
Author: Ludovic Courtès <[email protected]>
AuthorDate: Fri Mar 21 17:08:25 2025 +0100
base: ‘spawn-remote-builder’ takes a socket.
* src/cuirass/base.scm (spawn-remote-builder): Make ‘socket’ a
parameter.
* src/cuirass/scripts/register.scm (cuirass-register): Update
accordingly.
* tests/remote.scm (start-notification-server): Adjust
‘spawn-remote-builder’ call accordingly.
---
src/cuirass/base.scm | 9 ++++-----
src/cuirass/scripts/register.scm | 5 ++++-
tests/remote.scm | 9 +++++++--
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 51d361c..eeac8ef 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -527,14 +527,13 @@ events to the event log service using EVENT-LOG, a Fibers
channel."
`(new-event (derivation-built ,derivation ,status)))))
(loop))))
-(define (spawn-remote-builder event-log)
+(define (spawn-remote-builder socket event-log)
"Spawn a build actor that performs builds using \"remote workers\". Return
-once ready to listen for incoming connections from 'cuirass remote-server'."
+once ready to listen for incoming connections from 'cuirass remote-server' on
+SOCKET."
(log-info "listening for 'cuirass remote-server' notifications on '~a'"
(%remote-server-socket-file-name))
- (let ((channel (make-channel))
- (socket (open-unix-listening-socket
- (%remote-server-socket-file-name))))
+ (let ((channel (make-channel)))
(spawn-fiber (remote-builder channel socket event-log))
channel))
diff --git a/src/cuirass/scripts/register.scm b/src/cuirass/scripts/register.scm
index 38db9a5..836dfe4 100644
--- a/src/cuirass/scripts/register.scm
+++ b/src/cuirass/scripts/register.scm
@@ -273,7 +273,10 @@
(let* ((exit-channel (make-channel))
(event-log-service (spawn-event-log-service))
(builder (if (option-ref opts 'build-remote #f)
- (spawn-remote-builder event-log-service)
+ (spawn-remote-builder
+ (open-unix-listening-socket
+ (%remote-server-socket-file-name))
+ event-log-service)
(spawn-local-builder
event-log-service)))
(evaluator (spawn-jobset-evaluator
#:max-parallel-evaluations
diff --git a/tests/remote.scm b/tests/remote.scm
index 864579c..db88e0d 100644
--- a/tests/remote.scm
+++ b/tests/remote.scm
@@ -106,13 +106,18 @@
(list "guile" "-c"
(object->string
'(begin
- (use-modules (cuirass base) (fibers))
+ (use-modules (cuirass base)
+ (cuirass utils)
+ (fibers))
(setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'none)
(run-fibers
(lambda ()
- (spawn-remote-builder
(spawn-event-log-service))
+ (spawn-remote-builder
+ (open-unix-listening-socket
+ (%remote-server-socket-file-name))
+ (spawn-event-log-service))
(sleep 120)) ;wait
#:drain? #t)))))))
;; Wait until this process is accepting connections.