GitHub Actions Tutorial — Self-Hosted Runners
Chapter 12 — Self-Hosted Runners
GitHub-hosted runners are convenient, but sometimes you need more: faster hardware, GPU access, private network connectivity, or specific software that’s expensive to install on every run. Self-hosted runners let you bring your own machines — physical servers, VMs, or containers — and connect them to GitHub Actions.
What You’ll Learn
- Setting up self-hosted runners on Linux, macOS, and Windows
- Organizing runners with groups and labels
- Autoscaling runners with Actions Runner Controller (ARC) on Kubernetes
- Using ephemeral runners for clean environments
- Security considerations for self-hosted runners
Topics Covered
1. Setup Runners
Install and configure the runner application on your machines.
2. Runner Groups & Labels
Organize runners into groups and assign labels for targeted job routing.
Read: Runner Groups & Labels →
3. Autoscaling (ARC)
Scale runners dynamically on Kubernetes with Actions Runner Controller.
4. Ephemeral Runners
Run each job on a fresh runner instance for maximum isolation.
5. Security Considerations
Protect your infrastructure from malicious workflows.
Read: Security Considerations →
Practice
Test your understanding with hands-on exercises.
← Previous: Chapter 11: Custom Actions
Next: Chapter 13: Deployments →