fix(ci): pin act_runner job image to catthehacker/ubuntu:act-22.04 #4

Merged
julien merged 1 commits from fix/ci-runner-image into main 2026-05-04 11:06:57 +02:00

1 Commits

Author SHA1 Message Date
Julien Gautier f5f0cd6369 fix(ci): pin act_runner job image to catthehacker/ubuntu:act-22.04
CI / check (pull_request) Failing after 4s
CI / commits (pull_request) Failing after 4s
CI / scan (pull_request) Failing after 7s
CI / a11y (pull_request) Failing after 2s
CI / perf (pull_request) Failing after 4s
Without an image suffix on the runner labels, act_runner uses a
minimal default container image that has no Node. Every JavaScript
action (actions/checkout, actions/setup-node, nrwl/nx-set-shas, etc.)
crashes during the action's launch step with `Cannot find: node in
PATH`, blocking every CI gate before any project code runs.

The fix is in the runner registration labels: act_runner accepts the
format `<label>:docker://<image>`, which makes act spawn jobs in the
specified container. catthehacker/ubuntu:act-22.04 is the de facto
standard image for act-compatible runners; it bundles Node, Python,
git, common build tools, and the Docker CLI, matching what GitHub
Actions / Gitea Actions workflows generally assume.

infra/ci-runners.compose.yml: GITEA_RUNNER_LABELS updated for the
three runners, with an inline comment explaining the format trap.

docs/decisions/0015-cicd-gitea-actions.md (§Runners): amend the
runner-image baseline. Previous wording said "a Debian image"
without specifying which; now states catthehacker/ubuntu:act-22.04
explicitly and explains the docker:// suffix requirement. Status
remains 'accepted' - the runner-image choice is implementation detail
under the existing decision.

Already-running runners need their labels updated in the Gitea UI
(Site Administration -> Actions -> Runners -> edit each runner) to
the new format. Compose change applies on next re-registration.
Documented as the operational follow-up.
2026-05-04 10:53:23 +02:00