Repository navigation
ci: stacked-PR pushes no longer leave a blocked required check - #479
Conversation
Closes #478 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (3)
Included review availability: This review used your included allowance. 2 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour. 📝 WalkthroughWalkthroughJ5 CI push triggers now cover ChangesJ5 CI workflow
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to The updated workflow and documentation describe the narrowed J5 CI coverage, and no concrete merge-blocking failure was established. The precise queuing behavior for rerunning a cancelled workflow remains unverified. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Problem
Pushing a PR stack started three J5 CI runs per commit, and the PRs ended up blocked on the required check "Format, lint, typecheck, and unit tests" until someone re-ran runs by hand. Closes #478.
The run history for the peering stack (#400–#408) shows what happens:
pushrun duplicates the PR run, because stack branches are namedj5/….pull_requestevents about a second apart: one because its head moved, one because its base moved. They are identical (same head commit, same merge commit; feat(a2a): peer servers negotiate a peer protocol version #401's two runs both checked out93d2f953). The first is cancelled by the second, and its gate job reports the required check as failed.37706093846at 00:22:14 cancelled37706095001at 00:23:44.What changed
.github/workflows/j5-ci.yml:pushruns only where there is no PR:j5/main,j5/release-<version>, andj5/preview-<x.y.z>-<n>. The packaging runbook publishes from release and preview branches after CI passes and before any PR exists, so they keep their push run.j5/evidenceno longer matches.ci.yml. Merging two PRs in a row used to cancel the first commit'sj5/mainrun.The issue proposed adding the head commit to the concurrency group. That doesn't separate the two PR events, since they carry the same commits, and it would stop a new push from cancelling the older run. So the pair still happens: the first of the two is cancelled within a second, before it takes a runner, and shows as cancelled in the run list. I found no way to hide it without a window in which the required check reads as passed before the tests finish.
J5 Mobile CIhas the same triggers. It is advisory and each job runs only when its inputs change, so I left it alone.FORK.mdand the packaging runbook each had one sentence saying J5 CI runs on everyj5/**push; both now say where it runs.How it was checked
j5/ci-stack-duplicate-runs. Pushing it started apull_requestrun and nopushrun.Checklist
FORK.md(case text and file-table row) in this PR — none toucheddocs/j5/product/upstream.md— noneAGENTS.md) — none applydocs/j5/product/and user docs rewritten where this changes them —FORK.mdand the packaging runbookClaude Opus 5.5 (1M context), Claude Code in J5 Code
🤖 Generated with Claude Code
Summary by CodeRabbit
j5/**and pushes to the main, release, and preview branches. Pull request runs are grouped by PR, while push runs are grouped by commit; eligible first-attempt PR runs can be cancelled when superseded.