
Runners are the machines that execute jobs in a GitHub Actions workflow.
For example, a runner can clone your repository locally, install testing software, and then run commands that evaluate your code.
A GitHub runner, whether hosted by GitHub or self-hosted, doesn’t come pre-installed with specific testing software. Instead, it provides the environment (operating system, basic tools) where you can install and run the testing software you need.
Here’s a breakdown of what a runner provides and what you typically install:
What a GitHub Runner Provides:
Operating System: GitHub-hosted runners offer Linux (Ubuntu), macOS, and Windows environments. Self-hosted runners can run on any OS you configure.
Basic Tools: These include common command-line tools like git, curl, and basic scripting languages. They also include some language specific runtimes.
Virtual Environments: GitHub hosted runners create a clean virtual environment for each job run.
What You Typically Install:
You’ll need to install the testing software relevant to your project within your GitHub Actions workflow. Here are some common examples:
- Language-Specific Testing Frameworks:
- Browser Testing Tools:
- API Testing Tools:
- Code Quality and Analysis Tools:
- Containerization Tools:
GitHub provides runners that you can use to run your jobs, or you can host your own runners. Each GitHub-hosted runner is a new virtual machine (VM) hosted by GitHub with the runner application and other tools preinstalled, and is available with Ubuntu Linux, Windows, or macOS operating systems. When you use a GitHub-hosted runner, machine maintenance and upgrades are taken care of for you.
You can choose one of the standard GitHub-hosted runner options or, if you are on the GitHub Team or GitHub Enterprise Cloud plan, you can provision a runner with more cores, or a runner that’s powered by a GPU processor. These machines are referred to as “larger runner.” For more information, see About larger runners.
Using GitHub-hosted runners requires network access with at least 70 kilobits per second upload and download speeds.