ci(frontstage): run personal workspace browser smokes - #5409
Conversation
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
|
Final update for
No merge action was taken by the author. No |
092fd58 to
f8cac93
Compare
5b08686 to
4740162
Compare
Signed-off-by: duanjialing.777 <duanjialing.777@bytedance.com>
4740162 to
8c9f25c
Compare
huangruiteng
left a comment
There was a problem hiding this comment.
Reviewer: model_agent | GPT-5 | OpenAI
动机
结论:APPROVE exact head 8c9f25c。提交前发现 head/base 更新,未发布旧 02a7418 结论;以下完整差异和本地对照均重新取自当前不可变 head/base。整份 PR 解决一个明确的维护缺口:打包前端验证已经调用 personal-workspace 浏览器入口及其场景,但只改这些验证源文件时,原有工作流路径筛选不会触发。补齐筛选让真实使用中的测试改动进入已有验证链,不新增产品能力,也不把测试数量当交付成果。
改动思路
沿用 .github/workflows/frontstage-pages.yml 的既有 pull_request 与 main push 路径白名单,各加入场景目录和入口脚本;不另建工作流、不扩大为 examples/**。两事件必须分别声明,目录通配不能覆盖位于目录外的同名前缀入口。不存在本 PR 专用的已接受 RFC;以不可变 base 760f039 的实际工作流、已调用的打包 smoke 及 GitHub 路径筛选契约确定预期,不把提交后输出作为 oracle。
具体改动
完整差异只有一个 YAML 文件,+4/-0。新增行位于 :33–34 与 :76–77:examples/personal-workspace-browser/** 覆盖已有场景及未来子目录,examples/personal-workspace-browser-smoke.mjs 精确覆盖外部入口。正路:这两类源修改在两种事件的路径条件均从未匹配变成匹配;负路:相邻同名前缀目录、入口的 .bak 文件及无关租约测试仍不匹配。branch=main 的 push 门槛和 pull_request 不部署的条件继续有效。
关键代码讲解
- on.pull_request.paths(.github/workflows/frontstage-pages.yml:33):在原筛选中加入两个真正被 job 消费的来源;只决定现有验证工作流是否入选,不授予 PR 部署权限。路径规则来自 GitHub workflow syntax:至少一条路径匹配即可入选,** 可跨目录,且 branch/path 条件须同时满足。
- on.push.paths(同文件 :76):补齐相同来源,但保留 branches: main,不把任意分支 push 变成部署入口;不存在匹配时原有不触发行为保留。
- smoke:personal-workspace-packaged(apps/presentation/dashboard/package.json:41,未修改):已有 build/验证链最终调用浏览器入口;入口 :38 导入 teamEvidenceScenario、:64 纳入 scenarioCatalog。调用链证明新增筛选不是未使用的目录或未来脚手架。此 PR 没改浏览器断言或场景生产数据。
对主干的风险
独立本地 oracle 读取上述不可变 base 和 exact head 的 YAML,验证 10 类路径 × 2 个事件,共 20 项;六个漏触发输入在 base 为 false、head 为 true,既有命中和无关输入保持不变。删除 head 恰好新增的四个路径条目后,完整 YAML 对象与 base 相等,覆盖 jobs、permissions、concurrency、schedule、workflow_dispatch 及 PR 部署 fence。路径模拟仅覆盖所列模式,不冒充 GitHub Actions 的实机触发验证。
源码原生验证:uv run --extra test python -m pytest -q tests/test_python_ci_workflow.py tests/test_chat_operation_actions.py,331 passed;git diff --check 通过。未查询、轮询或等待远端 CI,也未 dispatch Actions、触发部署或使用凭据。变更有意让此前遗漏的测试源修改多跑已有验证,因此成本是这些修改的原有 job 运行,不是默认新增工具调用或扩大 secret 权限。其他路径、产品行为和前端产物未改,不要求为这四行重新资格化整个浏览器产品旅程。
我的整体评价
无阻塞 finding。新增筛选与真实调用来源一致,范围窄且可通过四行回滚,未建立第二个决策 owner。未来方向检查:这里两事件各自的路径列表是 GitHub 工作流语法,不值得为四条来源新增生成器、TS 层或新 CI 抽象;继续复用现有打包 job 即可。最强未测边界是 GitHub 托管 runner 的实际事件投递,不宣称本地对照已经运行了远端 Actions 或全浏览器套件;它不构成本次路径规则修复的本地证据缺口。批准后独立读回旧阻塞状态,只有满足 capability closeout 的旧评审才可撤销;未合并。
English verdict: APPROVE - 8c9f25c adds only the missing active browser-smoke source filters; independent current base/head path checks preserve existing selection and deployment fences, and 331 repository-native local tests pass.
|
The post-merge Windows failure is unrelated to this PR's workflow path-filter change. The failing handoff migration cases hit a direct parent-directory |
Summary
main@8fdc1616Why
Frontstage Pages runs the packaged Personal Workspace browser smoke, but its path filters excluded the smoke entrypoint and scenario directory. A scenario-only change could therefore break the packaged browser flow without starting the workflow that owns it.
The typed-action fixture repair that originally exposed this gap is already on
mainthrough #5266, so no duplicate fixture code remains in this PR.Validation
npm run build:chatLOOPX_PERSONAL_WORKSPACE_SCENARIO=chat-todo-proposal npm run smoke:personal-workspace-packagednpm run smoke:personal-workspace-packaged(32 browser scenarios)git diff --check36853508330passed after these path filters were addedKnown baseline
tests/test_chat_operation_actions.py::test_browser_operation_fixture_needs_no_test_frameworkon currentmainstill expects the old operation fixture list. #5418 contains the isolated assertion update; it is intentionally not duplicated here.Signed-off-by: duanjialing.777 duanjialing.777@bytedance.com