[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Ludovic Courtès |
Date: |
Mon, 18 Sep 2023 10:06:12 -0400 (EDT) |
branch: master
commit ae7ff698e0a88a5de1dc17954a0c4213e88fd5a8
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))