Services

Resources

Company

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

  1. Origin of the term

  2. About self-hosted runners (GitHub Docs)

  3. About GitHub-hosted runners (GitHub Docs)

Four-panel comic explaining GitHub Actions runner. A GitHub Actions runner is the machine that picks up and executes jobs from a GitHub Actions workflow, either GitHub-hosted or self-hosted.