Replies: 1 comment
|
I think we can introduce the merge queue incrementally instead of rerunning the entire PR workflow for every merge group. A possible first step would be to classify the current CI checks into two logical groups:
A normal pull request would continue to run A + B, while a For an initial rollout, I would also suggest:
If the community agrees with this direction, I would be happy to help review the current workflows, classify each check into A or B, and identify which tests are ready to gate the merge queue versus which ones should remain non-blocking until stabilized. |
Uh oh!
There was an error while loading. Please reload this page.
Why
CI on a PR runs against
mainas it was when the branch was last pushed.mainmerges about 47 times a day, and branch protection (strict: false) does not ask for a re-run when it moves. So between "tested" and "merged" there is a gap nothing checks. #3744 shows it: a protocol-compatible-change declaration at epoch 87 against amainat 93, CI green, and the guard that would catch it never runs onmainbecause it is limited topull_request.Any check whose answer depends on
mainhas the same gap.Options
mainat push timestrict: truemain, re-run every timemainmovesmain+ the queued batch, once, right before mergetestrun per merge (batches share a run).ci.ymlmust handlemerge_group.mainmaingoes red until a follow-upWhat changes for you with a merge queue
mainis untouched, PRs behind it are re-batched without it. Fix, then queue again.Before switching it on
ci.ymlgets amerge_group:trigger, aBASE_SHAfor that event, and the guard'sif:widened.Looking for objections or experience with queues elsewhere. If there are none in a week or so, I will open the tracking issue and the
ci.ymlPR.简体中文
PR 的 CI 测的是 push 时的 main,之后 main 前进不重测,#3744 的过期 epoch 声明就是这么漏过去的。strict 在每天 47 次合并下不收敛;merge queue 在合并前用最新 main 加排队的一批测一次,红了踢回、main 不动。开关之前要先让 ci.yml 响应 merge_group,并把额外的跑量挂到 #4451/#4480 的 runner 预算上。请提反对意见或别处用队列的经验。
All reactions