Orchestrating Renovate, Dependabot, release PRs and tests on main: a priority queue for GitHub Actions
Описание и применение
В репозитории с несколькими ботами и ручными PRs CI запускается в произвольном порядке, вызывая лишние сборки и конфликтующие развертывания. Composite‑action boarding‑gate реализует очередь приоритетов, ограничивая одновременные запуски и гарантируя, что релиз‑PR будет объединён после всех изменений.
Задача
Multiple automated and manual pull requests merge into main in arbitrary order, causing wasted CI runs, deployment collisions, and stalled release PRs.
Результат
Implementing boarding‑gate reduces CI waste, prevents deployment collisions, and ensures release PRs merge after all other changes.
Рабочий процесс
- Enable branch protection with "Require branches to be up to date before merging".
- Add boarding‑gate composite action as the first job in each workflow.
- Configure label‑weights to set priorities (e.g., urgent=10, renovate=-5).
- Set require‑up‑to‑date=true to fail or rebase stale branches.
- Set update‑pending‑branches=true to rebalance queue after merges.
- Use concurrency group to cancel stale runs.
- Add status‑context to report queue position.
Доказательства
If CI deploys something real, a cloud stack, a staging environment, a Terraform state, it is not fine.
Every merge costs one run per remaining open PR, so merging n PRs costs on the order of n²/2 runs.
boarding‑gate is a composite action that enforces exactly that rule for one workflow.
- Дата записи: 2026-11-03T19:29:01.775Z