Repository navigation
ci: an opt-in label lane runs the 18.x upgrade harness on a line PR's merge preview (step 0 wiring) - #24554
Conversation
… merge preview Claude-Session: https://claude.ai/code/session_01SH2ojNSqz93pYiNSmUyQnf Co-authored-by: Claude <noreply@anthropic.com>
Seat review ·
|
维护者速读(总监席记录 · 第 45 场续场 1 ·
|
|
Director seat, summon #46,
Generated by Claude Code |
Part of #24522
Clause-②: no — a CI workflow, an expected-skip roster row and a label declaration; nothing a package publishes changes
The second, governed half of step 0 of the 18.x line: the wiring that lets the line's PRs run the upgrade harness before they merge. The harness itself (test, fixture, generator) is the sibling draft PR on
claude/issue-24522-18x-upgrade-harness, and this PR's job runs that file. Land it with or after that PR. Before then, a labelled run fails loudly on a missing file: the dogfood config's filter preflight refuses a named path that selects no test.维护者速读(草稿)
needs:upgrade-harness标签后,CI 会在合并预览上用 18.0 的样本数据库启动当前代码,检查数据是否完好、v17 数据库是否仍被拒绝。没有标签的 PR 不运行,不花钱。另外两处是配套登记:预期跳过名单加一行,标签声明脚本加一行。main都能随时发版,其中 R2 要求「18.0 装出来的数据库升级到这个提交后能启动、数据不丢」,并要求在合并前检查。dogfood 测试现在只在main上跑,PR 阶段跑不到,所以要加这个入口。.github/workflows/**属 Tier H)。标签对象由席位用scripts/pm/ensure-pm-labels.sh创建;之后席位给 18.x 线上的每个 PR 打这个标签。What it adds
.github/workflows/upgrade-harness-optin.yml— job18.x upgrade harness (opt-in).pull_request(opened, synchronize, reopened, labeled), and only while the PR carriesneeds:upgrade-harness. Alabeledevent must name that label.--filter=@objectstack/dogfood, and runsvitest run test/upgrade-18x-harness.dogfood.test.ts.merge_grouptrigger, and the job is not a required context. This mirrorspack-smoke-optin.yml, whose header argues each choice.scripts/pm/check-expected-skips.mjs— the job's name entersEXPECTED_SKIPSas a label-gated skip, so the enqueue bar does not read its skip on every other PR as a filter miss.scripts/pm/ensure-pm-labels.sh— declares the label object (colour and description). ⛔ Never auto-applied.Why this shape (measured)
workflow_dispatchci.ymlon the PR branchGates (on this branch, head as pushed)
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 52 commands. All 52 exit 0.pnpm check:pm-dispatch-gatesran on its own:✓ dispatch-gates self-test (fast tier): 1913 cases passin 465.4 s.pnpm check:pm-expected-skipsandpnpm check:pm-label-desc-capexit 0.node scripts/pm/check-expected-skips.mjs --self-testgave✓ … 154 cases pass; it reads the roster's truth against this checkout's workflows.node scripts/pm/check-governed-merges.mjs --branch claude/issue-24522-harness-lanereadsGOVERNED, landing tier H, 136 changed lines.Generated by Claude Code