Commitf571439eRecorded2 Sep 2026Repositorysigil-r7rs
Add a native kiln pipeline definition
Message
Three named steps -- deps, build, test -- defined directly in kiln's job language with no wrapping shell script. Copied from the sigil-http pilot; the repo name on line 1 is the only line that differs.
Header records the traps a copier needs: on: is mandatory and its absence is silent, step names do not fold in the UI yet, there is no check ledger in native mode, and the worker timeout is clamped without a diagnostic.
Changed
.kiln/ci.sgv | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)Diff
.kiln/ci.sgvadded
@@ -0,0 +1,48 @@
+1
;;; ci.sgv -- sigil-r7rs CI, defined natively in kiln's job language.+2
;;;+3
;;; No `.kiln/ci.sh`. The three steps below ARE the pipeline.+4
;;;+5
;;; `on:` IS MANDATORY AND ITS ABSENCE IS SILENT. A workflow with no `on:`+6
;;; matches no event, produces no error and no run, and still lints OK --+7
;;; so a missing `on:` reads exactly like a controller fault rather than+8
;;; like this file.+9
;;;+10
;;; NO `branch:` FILTER ON `push`, deliberately: a filter would narrow+11
;;; coverage to one ref. `(pull-request)` is not declared either -- kiln's+12
;;; matcher accepts it, but no run of that kind has been observed on this+13
;;; controller, and declaring coverage nobody has seen fire is how a green+14
;;; comes to mean less than it looks.+15
;;;+16
;;; ONE NODE, NOT THREE JOBS. Every node gets its own worker and its own+17
;;; delivered tree, and `sigil deps install` leaves a link farm in the+18
;;; workspace pointing at content under $HOME -- so splitting the stages+19
;;; across nodes means either shipping the whole of `build/` between them (138 MB+20
;;; measured on sigil-http) or depending on $HOME being shared between leases.+21
;;; Reasoning and measurements: topics/kiln-native-pipeline-single-node-template.+22
;;;+23
;;; STEP NAMES DO NOT FOLD IN THE UI TODAY, and that is a kiln bug, not a+24
;;; mistake here: `nodeexec.sgl` emits `##[kiln:section-start:<name>]` and+25
;;; the log viewer's parser wants the legacy `##[kiln:section-start <ms>+26
;;; <name>]`. Keep the names -- they are the contract any future+27
;;; comparison rests on -- but expect plain log lines until that is fixed.+28
;;; There is also no check ledger here: that whole contract lives in each+29
;;; repo's `.kiln/ci.sh`, and this pipeline has none.+30
;;; See topics/kiln-native-pipeline-emits-no-checks.+31
;;;+32
;;; `timeout: 1800` is CLAMPED by `safety.max_job_timeout` with no+33
;;; diagnostic -- a plain (min declared ceiling). 1800 is that key's+34
;;; default, so it survives on a controller that has not lowered it and is+35
;;; silently reduced on one that has. The effective value is printed once,+36
;;; in `Persistent worker ready ... timeout=N`, and only on the+37
;;; persistent-worker path.+38
+39
(pipeline ci+40
on: #[ (push) (manual) ]+41
+42
(job ci+43
worker: (worker timeout: 1800)+44
steps: #[+45
(shell name: deps "sigil deps install")+46
(shell name: build "sigil build")+47
(shell name: test "sigil test")+48
]))