GitHub-Hosted Runners
GitHub-hosted runners give you a quick, zero-maintenance experience. They come preconfigured with common tools and support Ubuntu, Windows, and macOS environments.Tiers of GitHub-Hosted Runners
- Standard Runners
- 2-core CPU, ~7 GB RAM, 14 GB SSD
- Ideal for typical CI/CD tasks with moderate resource needs
- Larger Managed Runners (GitHub Team & Enterprise Cloud only)
- 4-core CPU, ~16 GB RAM, larger SSD
- For parallel builds, integration tests, and heavier workloads
- GPU-Enabled Runners (Beta)
- GPU resources in beta for machine learning, data processing
- Request access via GitHub Support if on Team or Enterprise Cloud
GitHub-hosted runners are fully patched and maintained by GitHub. You pay per minute of usage, with free tiers for public repositories.

Self-Hosted Runners
Self-hosted runners are machines that you own or provision in your cloud environment. They allow complete customization of OS, hardware specs, installed software, and network configuration.
Benefits of Self-Hosted Runners
- Custom Execution Environment: Install any dependencies, SDKs, or drivers your build needs.
- Security & Compliance: Run within your VPC/firewall and meet corporate policies.
- No Queue Times: Dedicated runners eliminate waiting for GitHub-hosted capacity.
- Autoscaling: Integrate with Kubernetes or autoscale groups to match workflow demand.
- Reduced Latency: Place runners in the same region as your artifact stores or environments.
You are responsible for updating, securing, and maintaining self-hosted runners. Always apply OS patches and rotate access tokens regularly.
Setting Up a Self-Hosted Runner
1. Add a New Runner in GitHub
In your repository, navigate to Settings → Actions → Runners and click New self-hosted runner.
2. Install and Configure the Runner
Run these commands on your machine:3. Target Your Self-Hosted Runner in Workflows
Add the labels you chose to theruns-on field:
Comparing GitHub-Hosted vs. Self-Hosted Runners
| Aspect | GitHub-Hosted | Self-Hosted |
|---|---|---|
| Management | Fully managed by GitHub | You install, update, and secure the runner |
| Customization | Predefined OS and toolset | Full control over OS, tools, and drivers |
| Resource Sharing | Shared infrastructure with other customers | Dedicated resources |
| Scaling | Limited by GitHub’s concurrency quotas | Autoscale via your infrastructure |
| Maintenance | Automatic updates and patches | Manual updates and patch management |
| Cost | Billed per-minute, free for public repos | Infrastructure and maintenance costs apply |
| Security | GitHub’s built-in security policies | Your network/host security measures |
| Instance Lifecycle | Fresh VM per job | Persistent instance across jobs |
