ci: 三条 live e2e 以 non-required lane 进 CI——真后端来自已发布的 rc.2 制品 (#2835) - #3325
Merged
Conversation
…nd (#2835) - New non-required informational lane (.github/workflows/live-e2e.yml): objectstack dev booted from published @objectstack/*@17.0.0-rc.2 (pins in e2e/live/ci/backend.env, matched to pnpm-lock.yaml's @objectstack/spec), showcase metadata sparse-checked-out at the release-tag commit, console served as a production build via vite preview. Allowlist: screen-flow, action-modal, master-detail (root script test:e2e:live:ci). - Remove ci.yml's stale dev-server job (apps/dev-server left the tree; the filter matched nothing and the job was green by vacuity). - Re-enable DashboardRenderer.designMode (skipped since 2026-05-01 as TODO(#ci-hang)) — passes standalone and in the full root run on today's dependency tree; scope check mandated by the #2835 ruling. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NVPjPzmmAJ2Ngtvgg5MSRa
…alone green, PR shards gate the full run Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NVPjPzmmAJ2Ngtvgg5MSRa
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
This was referenced Aug 4, 2026
akarma-synetal
pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 4, 2026
…bjectstack-ai#3334) (objectstack-ai#3335) spec rc.2 新增导出 PercentScale/BulkActionParam/BulkActionOperation/BulkActionDef, 与本地手写声明撞名触发 check:spec-symbols 守卫:PercentScale(core)与 BulkActionOperation(types)形状一致,改为从 spec 导入再导出;BulkActionParam/ BulkActionDef 是渲染端方言(运行时 actionDef 字段、开放 type),按守卫治理加 ALLOW 条目并新增 bulk-action-spec-parity 测试钉住分歧。 live-e2e.yml(objectstack-ai#3325)补 ci-cd-pipeline.md 章节与 Workflow Inventory 表行, 修复 ci-cd-pipeline-doc 守卫(CI Test 与 Changeset Release 同根因)。 Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This was referenced Aug 6, 2026
Closed
akarma-synetal
pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 6, 2026
…bjectstack-ai#3432) .github/workflows/live-e2e.yml 自 objectstack-ai#3325 落地起就从未跑起来过一次:它在 job 级 env 里写了 `LIVE_BACKEND_DIR: ${{ runner.temp }}/live-backend`,而 `runner` 上下文在 job 级 env 求值时尚不存在(GitHub 的 contexts availability 表在此处只允许 github / inputs / matrix / needs / secrets / strategy / vars)。这不是某个 step 失败,而是**整份 workflow 文件校验不 通过**,于是 GitHub 无法解析 `on:` 就先判定文件非法,对每一次 push 都记 一条 0 job / 0s 的 startup failure —— 包括 gh-readonly-queue/* 合并队列 分支,把每个 PR 和每次 main push 的 checks 列表都染红一格。 两个由此推出的事实: 1. `continue-on-error: true` 救不了它。那是 job 级属性,而这里根本没有 任何 job 被创建,红色出在 workflow 启动阶段。 2. 该 lane 从未真正冒烟测试过任何东西。按 `pull_request` 事件过滤,这个 workflow 的历史 run 数是 **0**;它声明的 push 触发器压根不存在,所有 182 个 run 编号全是 push 上的 startup failure 噪声。 修法保持最小:job 级 env 只留三个字面量;`LIVE_BACKEND_DIR` 下沉到唯一 消费它的 "Start ObjectStack backend" step 的 step 级 env —— 那里读 `runner` 是合法的。cache 的 `path:`/`key:` 与 artifact 上传的 `path:` 本 就在 `with:` 里,一直合法,未动。同时在 job 级 env 上方留下一段告警注释, 避免下一个人把它挪回去。 验证(actionlint v1.7.7,方向在跑之前先行预测): - origin/main 原文件 → `live-e2e.yml:61:29: context "runner" is not allowed here` (exit 1) - 本次修改后 → 无告警 (exit 0) - 对 .github/workflows/*.yml 全量跑 → exit 0,说明 live-e2e.yml 是仓库 里唯一一份校验不过的 workflow,与 issue 观察到的"只有这一格红"吻合。 纯 CI bug 修复、不触及任何已发布包,按 AGENTS.md:151 不需要 changeset。 Fixes objectstack-ai#3425 Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Aug 6, 2026
akarma-synetal
pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 6, 2026
…#3451) (objectstack-ai#3456) `content/docs/guide/ci-cd-pipeline.md` 的 ci.yml 一节写「Seven jobs, all parallel」,表格第七行是 `dev-server`;ci.yml 实际只有 6 个 job。 查史后的真实时间线比 issue 假设的更糟——这一行不只是「YAML 变了、散文没跟上」: 2026-05-24 apps/dev-server 与 dev-server job 同时落地(3fb31a5d) 2026-05-26 apps/dev-server 被移除(f2a03a5f),job 保留; `--filter @object-ui/dev-server` 自此匹配不到任何包、exit 0 ——空转绿 69 天 2026-08-03 objectstack-ai#3253(修 objectstack-ai#3212)重写这张任务表并「补齐」dev-server 行, 描述的是一个自 5 月起就没构建过任何东西的守卫。 这一行写下来的当天就是假的 2026-08-04 objectstack-ai#3325 从 ci.yml 删掉这个空转 job,留下了这一行 2026-08-06 objectstack-ai#3451 objectstack-ai#3253 给 workflow 清单加了双向断言,却没给 job 表加——表格一天之内就漂了。 本 PR: - 删掉 `dev-server` 行;「Seven jobs」改为不写死数字(沿用本页 objectstack-ai#3212 对 workflow 计数已做过的同一决定),inventory 表的「6 of its 7 jobs」同改为 按 job 名表述。 - 「What is *not* in ci.yml」补记 dev-server 的完整来龙去脉,并写明今天既无 apps/dev-server 也无该 job,其意图由 live-e2e.yml(信息性)承接。 - ci-cd-pipeline-doc.test.ts 加 4 条断言:任务表首列 ↔ ci.yml `jobs:` keys 双向;「Appears as」列对 ci.yml `name:`(`${{ }}` 作通配,因 test 是矩阵 job);本节不得写死 job 数量;以及否认段落的反向 pin。 只改文档与测试,未动任何 workflow YAML(.github/workflows 由 objectstack-ai#3448 负责)。 Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2835
做了什么
e2e/live/**的 20+ 条 Playwright spec 覆盖行操作、弹窗、主从、screen flow 等交互关键路径,但 CI 从不运行它们——framework#3528(懒加载 suspension 拆掉宿主 dialog,只有真浏览器+真后端能复现)就是这么漏出去的。本 PR 按 #2835 维护者裁决(含 2026-08-03 追加裁决)给 CI 一个真后端,并以 non-required 信息性 lane + 三条 allowlist 起步。1. 新 workflow
.github/workflows/live-e2e.yml(信息性,不阻塞合并)objectstack dev --seed-admin --fresh,依赖全部来自 npm 上已发布的@objectstack/*@17.0.0-rc.2(与本仓pnpm-lock.yaml解析的@objectstack/spec版本配对,避免测错配组合);showcase 元数据从 framework 仓 release tag@objectstack/cli@17.0.0-rc.2指向的 commit(89d2a4eb)稀疏检出。零源码构建——每个 PR 都在跑一次「本 console × 已发布 rc.2 后端」的集成冒烟。pin 集中在e2e/live/ci/backend.env,与 framework 仓.objectui-sha的 console vendoring 互为镜像。vite preview(VITE_BASE_PATH=/使 SPA fallback 对深链接可用;preview.proxy继承server.proxy,代理链路已本地实测)。screen-flow/action-modal/master-detail(根脚本test:e2e:live:ci)。扩量方式:逐条证明稳定后加进该脚本,不要一次放开 20+ 条继承存量 flake。continue-on-error: true——失败不置红 workflow run,因此既不进合并门槛,也不会因 AGENTS.md「全绿才合」惯例事实上阻塞并行 agent(objectstack#4850 前科:新 lane 的 flake 把无关 PR 逐出合并队列)。失败仍可见:红 step +live-e2e-artifacts(Playwright report + 后端/preview 日志)+ job summary。另挂 nightly schedule 在 main 上积累稳定性记录,作为将来转 required 的依据。2. 删除 stale 的
dev-serverjob(ci.yml)apps/dev-server早已不在树中(apps/console/README.md明确记录已移除),pnpm --filter @object-ui/dev-server build匹配不到任何包、静默退出 0——该 job 长期「空转绿」。按裁决直接删除,其守护意图由本 lane 接替(且换成了真后端)。3. 为什么动了
packages/plugin-dashboard的 designMode 测试这不在「live e2e 进 CI」的直观落点里,但在裁决明文范围内:#2835 裁决评论将
DashboardRenderer.designMode的describe.skip(TODO(#ci-hang),2026-05-01 至今)「纳入同一波清理的范围核查」——它和本单是同一类病:存在于磁盘、保护着零的测试。核查结果:在今日依赖树(spec 17.0.0-rc.2)上单跑 24/24 全过、8.31s、无挂起;当年的挂起归因于传递依赖,依赖树已整体换代。予以解禁;本 PR 自己的 4 个 sharded Test job(required)就是全量语境的把关——若复发,失败签名是 Test job 撞timeout-minutes,红在本 PR 上而非 main,届时回退 skip 并按注释里的指引 bisect。验证
本地验证被容器两次重启打断(PM 已裁定 push-first);完成的轮次与实测输出如下,未凑够的以本 PR 的 live-e2e lane 实跑为准——这个 workflow 本身就是对自己的验证。
start-backend.sh,本地)[live-backend] ready: seeded sign-in answered on :4210;POST /api/v1/auth/sign-in/email→ 200VITE_BASE_PATH=/)✓ built in 15.68spnpm exec vitest run …designMode.test.tsx)Test Files 1 passed / Tests 24 passed,8.31s影响面与共享文件
package.json:新增脚本test:e2e:live:ci(一行)。.github/workflows/ci.yml:仅删除dev-serverjob。content/docs/releases/。后续(不在本 PR)
@objectstackpin 的同一 PR 里同步 bumpe2e/live/ci/backend.env(两个 pin 必须同 PR 走,理由见 backend.env 头注)。🤖 Generated with Claude Code
https://claude.ai/code/session_01NVPjPzmmAJ2Ngtvgg5MSRa
Generated by Claude Code