guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Ludovic Courtès
Date: Wed, 13 Sep 2023 13:05:40 -0400 (EDT)

branch: wip-actors
commit 0346ac2f9576639f25ed3ead06673a7863bafb74
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Wed Sep 13 18:41:38 2023 +0200

    base: Add comment giving an overview of the actors.
    
    * src/cuirass/base.scm: Add commentary.
---
 src/cuirass/base.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index ef8407e..d114d24 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -84,6 +84,35 @@
             %package-cachedir
             %fallback?))
 
+;;; Commentary:
+;;;
+;;; This file splits continuous integration activity among several "actors",
+;;; currently all running inside the 'cuirass register' process.  Actors are
+;;; implemented as fibers that serve requests received as messages on their
+;;; channel.  The main actors are the following:
+;;;
+;;;  - The "channel updater" is responsible for updating Git checkouts for
+;;;    channels.  There's a single instance of this actor; it limits
+;;;    concurrent Git updates.
+;;;
+;;;  - The "evaluator" spawns evaluations of jobsets for the given channel
+;;;    instances, again limiting the number of concurrent evaluations.
+;;;
+;;;  - The "builder" spawns derivation builds.  There are currently two
+;;;    implementations: the local builder sends build requests to the local
+;;;    'guix-daemon' process, while the remote build delegates builds to
+;;;    'cuirass remote-server'.
+;;;
+;;;  - Each jobset as an associated "monitor"; it requests channel updates,
+;;;    evaluations, and builds to the actors above.  It also receives requests
+;;;    such as evaluation triggers that can come, for example, from the
+;;;    /jobset/NAME/hook/evaluate HTTP endpoint.
+;;;
+;;;  - The "jobset" registry is a directory that maps jobset names to their
+;;;    monitor.
+;;;
+;;; Code:
+
 (define %fallback?
   ;; Define whether to fall back to building when the substituter fails.
   (make-parameter #f))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]