f014d5534a
Central runner on ana-docker (gitea is local; existing fleet tooling already SSHes from there). Playbook is parameterized so future site-local runners (nh3-docker, esh-docker-vm) drop in via --var overrides instead of copy-paste. Includes a workflow template for vh/task-board that calls the existing deploy-task-board.yaml playbook — keeps the playbook as the single source of truth for "how task-board is deployed", manual or automated. Labels embed `:docker://node:20-bookworm-slim` schema; without it, act_runner v0.6+ silently falls back to host-mode and runs job steps inside the Alpine runner container (no apt/python/node), breaking any real workflow. node:20-bookworm-slim is small + has git + node so actions/checkout works out of the box.
43 lines
1.9 KiB
Bash
43 lines
1.9 KiB
Bash
# Gitea instance the runner polls.
|
|
GITEA_INSTANCE_URL=https://gitea.phasefinal.com
|
|
|
|
# Runner identity. NAME shows in the runner list in gitea admin;
|
|
# LABELS is what `runs-on:` in workflow YAML matches against.
|
|
#
|
|
# `pfi-fleet` is the cross-host label used by all PFI runners — keep
|
|
# it on every runner. The host-specific label (ana-docker, nh3-docker,
|
|
# esh-docker-vm) lets a workflow pin to a particular site if it has to
|
|
# (e.g. needs LAN access to a host only reachable from there).
|
|
#
|
|
# Each label MUST carry a `:docker://<image>` schema. Without it,
|
|
# act_runner v0.6+ falls back to "host" mode — jobs would execute
|
|
# inside the runner container itself (Alpine, no apt/python/node)
|
|
# instead of in a spawned job container, breaking any workflow that
|
|
# expects a normal Linux userspace.
|
|
#
|
|
# `node:20-bookworm-slim` is a sane default: small (~150 MB), has git
|
|
# + node (so `actions/checkout@v4` and other JS-based actions work),
|
|
# debian-based so `apt-get install` works. Workflows can still override
|
|
# with their own job-level `container: image:` if they need something
|
|
# different.
|
|
GITEA_RUNNER_NAME=ana-docker-runner
|
|
GITEA_RUNNER_LABELS=pfi-fleet:docker://node:20-bookworm-slim,ana-docker:docker://node:20-bookworm-slim
|
|
|
|
# One-time registration token. Generate at:
|
|
# https://gitea.phasefinal.com/-/admin/actions/runners (org/global)
|
|
# or:
|
|
# https://gitea.phasefinal.com/<owner>/<repo>/settings/actions/runners (repo)
|
|
#
|
|
# Used only on first start; afterwards the runner caches a permanent
|
|
# token at ${DATA_DIR}/.runner. Safe to clear after the runner shows
|
|
# up in the gitea admin runner list.
|
|
GITEA_RUNNER_REGISTRATION_TOKEN=
|
|
|
|
# Persistence (.runner credentials, build cache, working dirs).
|
|
DATA_DIR=/opt/docker/conf/gitea-runner/data
|
|
|
|
# Pin to a tagged release in production; :latest is fine for
|
|
# bootstrapping. Check https://gitea.com/gitea/act_runner/releases
|
|
# for the current stable.
|
|
RUNNER_IMAGE=gitea/act_runner:latest
|