compiler-explorer / compiler-explorer/infra
Update self-hosted runner runs-on labels for bidirectional label matching (ce-ci v8)
- Dominant language
- Python
- Stars
- 434
- Forks
- 429
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 38
Description
## Background
The CI runner infra (compiler-explorer/ce-ci) will migrate its label matching from the deprecated `exactMatch` to `bidirectionalLabelMatch` when it upgrades the terraform-aws-github-runner module to **v8** (deprecated in v7.9.0; realistic removal ≈ late 2026). Tracking issue: **compiler-explorer/ce-ci#20**.
`bidirectionalLabelMatch` requires a workflow's `runs-on` to be an **exact** set match with the runner's full registered labels — which include auto-added `self-hosted` + `` + `` on top of our custom labels. Some of our workflows currently use **short `runs-on`** forms that rely on the old subset behaviour and **will stop matching** once ce-ci flips the flag.
## Affected workflows (need `runs-on` widened)
Only the **builder** workflows are affected — they use short forms:
| File | Line | Current `runs-on` | Must become |
|---|---|---|---|
| `.github/workflows/adhoc-command-lin-builder.yml` | 23 | `[lin-builder]` | `[self-hosted, ce, lin-builder, linux, x64]` |
| `.github/workflows/lin-lib-build.yaml` | 38 | `['lin-builder']` | `[self-hosted, ce, lin-builder, linux, x64]` |
| `.github/workflows/win-lib-build.yaml` | 29 | `['win-builder']` | `[self-hosted, ce, win-builder, windows, x64]` |
## Already fine (full label set — no change needed)
- `install.yml` → `[self-hosted, ce, linux, x64, small]`
- `consolidate.yml` → `[self-hosted, ce, linux, x64, medium]`
- `bespoke-build-arm64.yaml` → `[self-hosted, ce, linux, arm64]`
- `bespoke-build.yaml` / `adhoc-command.yml` → dynamic, resolve to full `[self-hosted, ce, linux, x64(, small|medium)]`
## Coordination
**Must ship together with the ce-ci flag flip** (compiler-explorer/ce-ci#20) — landing either side alone breaks builder jobs. After both apply, verify with the `adhoc-command-lin-builder` / `win-lib-build` workflows that runners still pick up jobs.
Contributor guide
Research direction
Start with the three affected workflows: .github/workflows/adhoc-command-lin-builder.yml, lin-lib-build.yaml, and win-lib-build.yaml, then compare their runs-on labels with the full labels listed in the issue. Update the three builder definitions and coordinate with compiler-explorer/ce-ci#20; done means the flag flip and workflow changes land together and adhoc-command-lin-builder and win-lib-build runs are picked up by the intended runners.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, terraform
- Domain
- ci-cd, infrastructure
- Issue type
- Refactor
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100