The official runner agent
GitHub provides a single runner binary (actions/runner) that you install on your machine. It registers with GitHub via a one-time token, then polls for jobs to run. Steps:
- Create a runner registration token (Repo or Org Settings → Actions → Runners → New self-hosted runner).
- Download the agent for your OS / arch.
./config.sh --url ... --token ... --labels gpu,linux-x64,internal./run.sh(or install as a service via./svc.sh install).
Labels are the routing layer
Always add labels that describe the runner's capabilities:
- OS:
linux,macos,windows. - Arch:
x64,arm64,apple-silicon. - Hardware:
gpu,gpu-h100,large-mem. - Network:
internal-network,vpn. - Trust:
trusted(your code only) vsuntrusted(PR builds).
Workflows opt in by listing the labels: runs-on: [self-hosted, gpu, linux].