Orchestrating Renovate, Dependabot, release PRs and tests on main: a priority queue for GitHub Actions
说明与用途
在包含多个机器人和手动 PR 的仓库中,CI 按任意顺序运行,导致构建浪费和部署冲突。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