About self-hosted runners
A self-hosted runner is a system that you deploy and manage to execute jobs from GitHub Actions on GitHub.
Self-hosted runners:
- Are free to use with GitHub Actions, but you are responsible for the cost of maintaining your runner machines.
- Let you create custom hardware configurations that meet your needs with processing power or memory to run larger jobs, install software available on your local network.
- Receive automatic updates for the self-hosted runner application only, though you may disable automatic updates of the runner.
- Can use cloud services or local machines that you already pay for.
- Don't need to have a clean instance for every job execution.
- Can be organized into groups to restrict access to specific workflows, organizations, and repositories. See Managing access to self-hosted runners using groups.
- Can be physical, virtual, in a container, on-premises, or in a cloud.
You can use self-hosted runners anywhere in the management hierarchy. Repository-level runners are dedicated to a single repository, while organization-level runners can process jobs for multiple repositories in an organization. Organization owners can choose which repositories are allowed to create repository-level self-hosted runners. See Disabling or limiting GitHub Actions for your organization. Finally, enterprise-level runners can be assigned to multiple organizations in an enterprise account.
Requirements for self-hosted runner machines
You can use any machine as a self-hosted runner as long at it meets these requirements:
- You can install and run the self-hosted runner application on the machine.
- The machine can communicate with GitHub Actions.
- The machine has enough hardware resources for the type of workflows you plan to run. The self-hosted runner application itself only requires minimal resources.
- If you want to run workflows that use Docker container actions or service containers, you must use a Linux machine and Docker must be installed.
Supported actions on self-hosted runners
All actions/setup-LANGUAGE
action repositories currently support three platforms: macOS, Windows, and Ubuntu.
Some extra configuration might be required to use actions from GitHub with GitHub Enterprise Server, or to use the actions/setup-LANGUAGE
actions with self-hosted runners that do not have internet access. For more information, see Managing access to actions from GitHub.com and contact your GitHub Enterprise site administrator.
Further reading
- Security hardening for GitHub Actions
- Adding self-hosted runners
- Using self-hosted runners in a workflow
- Autoscaling with self-hosted runners
- Getting started with self-hosted runners for your enterprise
- Supported architectures and operating systems for self-hosted runners
- Communicating with self-hosted runners