The act_runner config uses runner.envs for job environment variables,
not container.env which doesn't exist.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The runner's container.env config sets environment variables in all
job containers, so we don't need to specify DOCKER_HOST per-workflow.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove forgejo_runner ansible role (no longer needed)
- Remove runner pre_tasks from indri.yml playbook
- Clean up actionlint.yaml to only allow k8s label
- Host runner was stopped and cleaned up on indri
All CI jobs now run on the k8s runner with DinD sidecar.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The k8s runner uses a DinD sidecar accessible via TCP on port 2375.
While the runner daemon config has docker_host set, job containers
don't inherit this - they need the DOCKER_HOST env var set explicitly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
localhost:3001 doesn't work from Docker containers on macOS
because Docker Desktop's host networking runs in a VM.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Runner now supports both host and docker labels
- docker label uses forgejo-runner:v2.1.0 image with Node.js + Docker CLI
- Switch build workflow to docker mode for ratcheting test
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Part of the runner ratcheting plan to migrate from host-mode to k8s runners.
- Debian-based image with forgejo-runner and Docker CLI
- Mounts Docker socket for container builds
- Auto-registers on first start
- Host networking for access to *.ops.eblu.me services
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>