This commit is contained in:
39
.github/documentation/runners.md
vendored
Normal file
39
.github/documentation/runners.md
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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` |
|
||||
Reference in New Issue
Block a user