# act_runner configuration for IPCR Forge. Only the settings that differ from upstream's defaults # are written out — `act_runner generate-config` prints the full set. From Apps/Gitea's, except # where marked "Forge:". log: level: info runner: # The file the runner's own registration is kept in, relative to /data. file: .runner # One job at a time. A PCS shares its CPU with everything else installed on # it, and an image build is the least polite thing on the box. capacity: 1 timeout: 1h fetch_timeout: 5s fetch_interval: 2s # Overrides the labels stored at registration (.runner). Gitea's own job images, which carry # node, bash, git and the docker CLI with buildx, so marketplace actions (actions/checkout, # docker/build-push-action, ...) run as they do on GitHub. labels: - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "ubuntu-24.04:docker://docker.gitea.com/runner-images:ubuntu-24.04" - "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04" cache: # The cache server binds an address inside the runner container, which the # job containers — created by the separate Docker daemon — cannot route to. # Left on, every `actions/cache` step fails noisily instead of being skipped. enabled: false container: # Forge: jobs run on the daemon's host network, which is the forge-docker container's own # namespace — where the staging registry listens as localhost:5000. Plain HTTP to localhost is # the one thing Docker and BuildKit accept without TLS, so a workflow needs no login and no # certificate. Jobs still reach the internet (actions, base images) and Gitea through its public # address. network: host privileged: false # Empty: the runner's own daemon (DOCKER_HOST) is mounted into each job, so `docker build` # and buildx work in a job, against the same daemon (and the same localhost:5000). docker_host: "" force_pull: false