GitHub Actions runner
A GitHub Actions runner is a machine that executes the jobs in a GitHub Actions workflow. It clones the repository, runs build and test steps and reports results back to GitHub. Runners are either GitHub-hosted virtual machines that GitHub manages, or self-hosted runners that you install and operate on your own servers, VMs or containers.
How it works
The runner application opens an outbound HTTPS long-poll connection to GitHub and waits for jobs whose runs-on labels match its own. A job with runs-on: [self-hosted, linux, x64] only lands on a self-hosted runner with those labels. GitHub-hosted runners start fresh for each job and allow up to 6 hours per job. Self-hosted runners allow jobs up to 5 days and keep whatever tools and caches you install.
Why it matters in production
Runner choice shapes CI speed, cost and security. Self-hosted runners give access to private networks, GPUs or larger machines and avoid per-minute billing. They also make you responsible for patching, autoscaling and isolation. A persistent runner used by untrusted pull requests can leak secrets between jobs, so ephemeral runners are the safer default.
See also
On the One2N blog
References
