Orchestrating Renovate, Dependabot, release PRs and tests on main: a priority queue for GitHub Actions
Description and use
In a repo with multiple bots and manual PRs, CI runs in arbitrary order, causing wasted builds and deployment conflicts. The boarding‑gate composite action implements a priority queue, limiting concurrent runs and ensuring the release PR merges after all changes.
Problem
Multiple automated and manual pull requests merge into main in arbitrary order, causing wasted CI runs, deployment collisions, and stalled release PRs.
Outcome
Implementing boarding‑gate reduces CI waste, prevents deployment collisions, and ensures release PRs merge after all other changes.
Workflow
- 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.
Evidence
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.
- Record date: 2026-11-03T19:29:01.775Z