halkyon/deploy/runner/config.yml
Tizian 「ティツィアーン」 93b0c0a6b0
chore: the servers are named by the domain they serve
Files called the servers by their own host names, which are the
operator's and say nothing a reader needs. They now say which domain a
server serves: learn.halkyon.eu's server (the instance and its CI
runner), the halkyon.app server (Forgejo and the F-Droid repository).

Two names are settings rather than words. CI's runner label becomes
`instance` (`runs-on: instance`, `labels: ["instance:host"]`): the
runner reads its installed copy of deploy/runner/config.yml, so jobs
wait in the queue until that copy is updated and the runner restarted.
The SSH aliases the scripts and docs use become `learn-deploy` and
`fdroid-upload`. AGENTS.md says to keep it so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-14 00:33:50 +02:00

47 lines
1.7 KiB
YAML

# The Forgejo Actions runner of this repository's CI, on learn.halkyon.eu's server. Installed as
# /etc/forgejo-runner/config.yml, read by forgejo-runner.service (next to this file).
# Written for forgejo-runner v13.1.0; its full reference: `forgejo-runner generate-config`.
#
# Jobs run directly on the host as the unprivileged user `runner`, never in containers:
# running containers would take Docker access, which is root on the production server.
# The systemd unit keeps the jobs away from production.
log:
level: info
job_level: info
runner:
# One job at a time: CI shares the machine with the instance.
capacity: 1
timeout: 1h
shutdown_timeout: 10m
fetch_timeout: 30s
# How often to ask Forgejo for work. The default (2 s) is needless load on
# code.halkyon.app's server, a one-core one.
fetch_interval: 10s
report_interval: 1s
# `runs-on: instance` in a workflow means: here, on the instance's server, on the host.
labels: ["instance:host"]
cache:
# No cache server (it would listen on a port of its own); the SDKs and package
# caches of host jobs stay in the runner's home between jobs anyway.
enabled: false
container:
# Never talk to Docker.
docker_host: "-"
host:
workdir_parent: /var/lib/forgejo-runner/work
server:
connections:
code.halkyon.app:
url: https://code.halkyon.app/
# From the repository's Settings → Actions → Runners → Create new runner. Not a
# secret; the installation replaces the placeholder.
uuid: RUNNER_UUID
# The token is kept in /etc/forgejo-runner/token (root only) and handed over by
# systemd (LoadCredential in the unit).
token_url: file:$CREDENTIALS_DIRECTORY/token