2.1 KiB
2.1 KiB
Custom GitHub Actions Runners
Available Runners
| Runner Label | Architecture | Size | Ephemeral | Notes |
|---|---|---|---|---|
runner-small |
x86_64 | Small | No | Light tasks: linting, formatting, validation |
runner-medium |
x86_64 | Medium | No | Standard CI: tests, builds |
runner-medium-arm64 |
arm64 | Medium | No | ARM64 builds and tests |
runner-large |
x86_64 | Large | No | Heavy workloads: benchmarks, coverage, release builds |
runner-large-spot |
x86_64 | Large | Yes | Cost-optimized large jobs where interruption is acceptable |
runner-medium-arm64-spot |
arm64 | Medium | Yes | Cost-optimized ARM64 jobs where interruption is acceptable |
Spot Runners
Spot runners (*-spot) use ephemeral cloud instances provisioned on a best-effort basis. They are significantly cheaper but can be preempted at any time if the cloud provider reclaims capacity.
Use spot runners for:
- Jobs that can be retried without consequence (test suites, linting)
- Non-time-critical workloads
- PR validation where re-runs are acceptable
Do not use spot runners for:
- Benchmarks (preemption and noisy-neighbor effects skew results)
- Release builds and publishing
- Jobs requiring consistent, reproducible timing
Choosing a Runner
| Workload | Recommended Runner |
|---|---|
| Linting, formatting, validation | runner-small |
| Unit tests, standard builds | runner-medium |
| ARM64 cross-compilation / tests | runner-medium-arm64 |
| Benchmarks, coverage reports | runner-large |
| Non-critical large builds | runner-large-spot |
| Non-critical ARM64 builds | runner-medium-arm64-spot |