From 09d351a0e73d20d9c3e231b64425c720774bc959 Mon Sep 17 00:00:00 2001 From: npeter83 Date: Sun, 20 Sep 2026 22:05:56 +0200 Subject: [PATCH] docs(ci): the two gate jobs queue, they do not run in parallel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Declared side by side, so they read as parallel; the lab runs a single act_runner with one slot, so the backend job starts at the exact second the frontend one ends. Measured across runs #86-#91: ~4 + ~6 = ~10 minutes from the push, not ~6. Written down because believing the comment cost something real — the ops release read-back budgeted the max instead of the sum and timed out on its first live run, reporting a still-running gate as a failing one. --- .gitea/workflows/check.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index 21684623..54a66221 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -1,8 +1,14 @@ # Server-side mirror of the local `siftlode check` gate (E1 S3 / DX-1), so `main` is always green -# independent of any one machine. Two parallel jobs match the two local lanes: +# independent of any one machine. Two jobs match the two local lanes: # frontend — tsc (3 projects) + eslint + prettier --check + knip + vitest # backend — ruff + the full pytest suite (pure-logic + the DB-backed lane) against a real Postgres # +# They are declared side by side but they DO NOT run in parallel: the lab has a single act_runner +# with one slot, so they queue. Measured across runs #86-#91 — the backend job starts at the exact +# second the frontend one ends, every time, and the pair costs ~4 + ~6 = **~10 minutes from the +# push**. Anything that waits on this gate has to budget for the sum, not the max; the ops +# `release` read-back timed out on its first real run for believing otherwise. +# # Runner: the lab act_runner (LXC 115) mounts the Docker socket, so service containers work. The backend # runs pytest NATIVELY against a `postgres` service (not the local docker-compose.test.yml, whose # bind-mount is unreliable under a mounted-socket runner); fidelity is kept by installing the SAME pinned