Build and push runner images / build-runners (pull_request) Failing after 38s
ROOT CAUSE: All 3 runner labels pointed to code.forgejo.org/forgejo/runner:6 (bare Alpine). When Forgejo runs a workflow, it creates a container FROM the label image — this container had no Node.js, no docker CLI, no Go/Rust, no root access, and no apt-get. Every CI job failed. FIX: Change runner labels to official Debian-based language images: golang → docker://golang:1.26-bookworm (Go + apt-get + root) node → docker://node:22-bookworm (Node.js + npm + apt-get + root) rust → docker://rust:1-bookworm (Rust + cargo + apt-get + root) The runner daemon pod still uses forgejo/runner:6 — only the label image (what workflow steps execute in) changes. Unified CI pattern for ALL repos: 1. Install Node.js first if not present (needed for actions/checkout@v4) 2. Install docker.io via apt-get (needed for docker build/push) 3. Use actions/checkout@v4 normally 4. Build/push with docker IMPORTANT: Runners must re-register after merge. Delete PVCs or /data/.runner files to trigger re-registration with new labels.