Extracts the traffic-control (runner-priority orchestration) job verbatim out of .github/workflows/ci.yml into a new standalone workflow, .github/workflows/traffic-control.yml.
This is a pure move — the maintainer is mothballing the traffic-controller to later rebuild it
as a published GitHub Action. Getting it out of ci.yml means the heavy jobs no longer depend
on it. The new workflow will be disabled (gh workflow disable) after this merges — this PR
only performs the extraction.
Changes
New file .github/workflows/traffic-control.yml:
name: Traffic control (runner priority), on: pull_request (the job reads github.event.pull_request.number, so it needs PR context).
The entire traffic-control: job moved verbatim (name, runs-on, timeout-minutes, permissions, env, full steps: bash), plus its documentation comment — unchanged.
Short top-of-file note recording that it was extracted from ci.yml and is being mothballed.
.github/workflows/ci.yml:
Deleted the traffic-control: job block (and its doc comment, which moved to the new file).
Removed needs: traffic-control from the five heavy jobs (static-analysis, debug-build, unit-tests, e2e, e2e-preview) and from traffic-control-tests — the latter's only needs: was traffic-control, which would otherwise dangle at a now-deleted job and make the
workflow invalid.
Updated the now-stale header comment at the top of jobs: and the ci-passed comment to note
that traffic-control now lives in its own (disabled) workflow.
traffic-control-tests, ci-passed, workflow_dispatch inputs, concurrency, and all
heavy-job config are otherwise unchanged.
Unchanged:.github/scripts/traffic_control.py (referenced by both the extracted workflow
and the traffic-control-tests job) is not touched.
Validation
yaml.safe_load parses both ci.yml and traffic-control.yml cleanly.
Zero remaining needs: traffic-control / traffic-control: job references in ci.yml
(the separate traffic-control-tests job remains).
## What
Extracts the `traffic-control` (runner-priority orchestration) job **verbatim** out of
`.github/workflows/ci.yml` into a new standalone workflow,
`.github/workflows/traffic-control.yml`.
This is a pure move — the maintainer is mothballing the traffic-controller to later rebuild it
as a published GitHub Action. Getting it out of `ci.yml` means the heavy jobs no longer depend
on it. **The new workflow will be disabled (`gh workflow disable`) after this merges** — this PR
only performs the extraction.
## Changes
**New file `.github/workflows/traffic-control.yml`:**
- `name: Traffic control (runner priority)`, `on: pull_request` (the job reads
`github.event.pull_request.number`, so it needs PR context).
- The entire `traffic-control:` job moved verbatim (`name`, `runs-on`, `timeout-minutes`,
`permissions`, `env`, full `steps:` bash), plus its documentation comment — unchanged.
- Short top-of-file note recording that it was extracted from `ci.yml` and is being mothballed.
**`.github/workflows/ci.yml`:**
- Deleted the `traffic-control:` job block (and its doc comment, which moved to the new file).
- Removed `needs: traffic-control` from the five heavy jobs (`static-analysis`, `debug-build`,
`unit-tests`, `e2e`, `e2e-preview`) **and** from `traffic-control-tests` — the latter's only
`needs:` was `traffic-control`, which would otherwise dangle at a now-deleted job and make the
workflow invalid.
- Updated the now-stale header comment at the top of `jobs:` and the `ci-passed` comment to note
that `traffic-control` now lives in its own (disabled) workflow.
- `traffic-control-tests`, `ci-passed`, `workflow_dispatch` inputs, concurrency, and all
heavy-job config are otherwise unchanged.
**Unchanged:** `.github/scripts/traffic_control.py` (referenced by both the extracted workflow
and the `traffic-control-tests` job) is not touched.
## Validation
- `yaml.safe_load` parses both `ci.yml` and `traffic-control.yml` cleanly.
- Zero remaining `needs: traffic-control` / `traffic-control:` job references in `ci.yml`
(the separate `traffic-control-tests` job remains).
- `python -m unittest discover -s .github/scripts` — 59 tests pass (script unchanged).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Extracts the
traffic-control(runner-priority orchestration) job verbatim out of.github/workflows/ci.ymlinto a new standalone workflow,.github/workflows/traffic-control.yml.This is a pure move — the maintainer is mothballing the traffic-controller to later rebuild it
as a published GitHub Action. Getting it out of
ci.ymlmeans the heavy jobs no longer dependon it. The new workflow will be disabled (
gh workflow disable) after this merges — this PRonly performs the extraction.
Changes
New file
.github/workflows/traffic-control.yml:name: Traffic control (runner priority),on: pull_request(the job readsgithub.event.pull_request.number, so it needs PR context).traffic-control:job moved verbatim (name,runs-on,timeout-minutes,permissions,env, fullsteps:bash), plus its documentation comment — unchanged.ci.ymland is being mothballed..github/workflows/ci.yml:traffic-control:job block (and its doc comment, which moved to the new file).needs: traffic-controlfrom the five heavy jobs (static-analysis,debug-build,unit-tests,e2e,e2e-preview) and fromtraffic-control-tests— the latter's onlyneeds:wastraffic-control, which would otherwise dangle at a now-deleted job and make theworkflow invalid.
jobs:and theci-passedcomment to notethat
traffic-controlnow lives in its own (disabled) workflow.traffic-control-tests,ci-passed,workflow_dispatchinputs, concurrency, and allheavy-job config are otherwise unchanged.
Unchanged:
.github/scripts/traffic_control.py(referenced by both the extracted workflowand the
traffic-control-testsjob) is not touched.Validation
yaml.safe_loadparses bothci.ymlandtraffic-control.ymlcleanly.needs: traffic-control/traffic-control:job references inci.yml(the separate
traffic-control-testsjob remains).python -m unittest discover -s .github/scripts— 59 tests pass (script unchanged).🤖 Generated with Claude Code