fix(ci): pin act_runner job image to catthehacker/ubuntu:act-22.04
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.
This commit is contained in:
@@ -18,7 +18,13 @@ services:
|
||||
GITEA_INSTANCE_URL: ${GITEA_INSTANCE_URL:?GITEA_INSTANCE_URL must be set in infra/.env}
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN:-}
|
||||
GITEA_RUNNER_NAME: apf-portal-runner-1
|
||||
GITEA_RUNNER_LABELS: self-hosted,on-prem
|
||||
# Labels are formatted as <label>:docker://<image>. Without the
|
||||
# docker:// suffix, act_runner uses a minimal default image with no
|
||||
# Node, breaking any JavaScript action (actions/checkout etc.).
|
||||
# catthehacker/ubuntu:act-22.04 is the de facto standard for
|
||||
# act-compatible runners — bundles Node, Python, git, common build
|
||||
# tools, and the Docker CLI.
|
||||
GITEA_RUNNER_LABELS: self-hosted:docker://catthehacker/ubuntu:act-22.04,on-prem:docker://catthehacker/ubuntu:act-22.04
|
||||
volumes:
|
||||
# Docker socket — see security note in infra/README.md.
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
@@ -35,7 +41,13 @@ services:
|
||||
GITEA_INSTANCE_URL: ${GITEA_INSTANCE_URL:?GITEA_INSTANCE_URL must be set in infra/.env}
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN:-}
|
||||
GITEA_RUNNER_NAME: apf-portal-runner-2
|
||||
GITEA_RUNNER_LABELS: self-hosted,on-prem
|
||||
# Labels are formatted as <label>:docker://<image>. Without the
|
||||
# docker:// suffix, act_runner uses a minimal default image with no
|
||||
# Node, breaking any JavaScript action (actions/checkout etc.).
|
||||
# catthehacker/ubuntu:act-22.04 is the de facto standard for
|
||||
# act-compatible runners — bundles Node, Python, git, common build
|
||||
# tools, and the Docker CLI.
|
||||
GITEA_RUNNER_LABELS: self-hosted:docker://catthehacker/ubuntu:act-22.04,on-prem:docker://catthehacker/ubuntu:act-22.04
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./data/runner-2:/data
|
||||
@@ -50,7 +62,13 @@ services:
|
||||
GITEA_INSTANCE_URL: ${GITEA_INSTANCE_URL:?GITEA_INSTANCE_URL must be set in infra/.env}
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN:-}
|
||||
GITEA_RUNNER_NAME: apf-portal-runner-3
|
||||
GITEA_RUNNER_LABELS: self-hosted,on-prem
|
||||
# Labels are formatted as <label>:docker://<image>. Without the
|
||||
# docker:// suffix, act_runner uses a minimal default image with no
|
||||
# Node, breaking any JavaScript action (actions/checkout etc.).
|
||||
# catthehacker/ubuntu:act-22.04 is the de facto standard for
|
||||
# act-compatible runners — bundles Node, Python, git, common build
|
||||
# tools, and the Docker CLI.
|
||||
GITEA_RUNNER_LABELS: self-hosted:docker://catthehacker/ubuntu:act-22.04,on-prem:docker://catthehacker/ubuntu:act-22.04
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./data/runner-3:/data
|
||||
|
||||
Reference in New Issue
Block a user