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 + <os> + <arch> 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.
Background
The CI runner infra (compiler-explorer/ce-ci) will migrate its label matching from the deprecated
exactMatchtobidirectionalLabelMatchwhen 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.bidirectionalLabelMatchrequires a workflow'sruns-onto be an exact set match with the runner's full registered labels — which include auto-addedself-hosted+<os>+<arch>on top of our custom labels. Some of our workflows currently use shortruns-onforms that rely on the old subset behaviour and will stop matching once ce-ci flips the flag.Affected workflows (need
runs-onwidened)Only the builder workflows are affected — they use short forms:
runs-on.github/workflows/adhoc-command-lin-builder.yml[lin-builder][self-hosted, ce, lin-builder, linux, x64].github/workflows/lin-lib-build.yaml['lin-builder'][self-hosted, ce, lin-builder, linux, x64].github/workflows/win-lib-build.yaml['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-buildworkflows that runners still pick up jobs.