ci(windows): scope baseline by affected surface - #2599
Conversation
Astro-Han
left a comment
There was a problem hiding this comment.
Thanks for tightening the Windows CI scope — reusing the existing planner is a good direction. I found three issues:
- [P1]
build:testcleans the outputs, but Desktop’sbuild:testdoes not producedist-rendereror the runtime resource. The current Windows run already shows the Electron smoke failing withERR_FILE_NOT_FOUNDfordist-renderer/index.html; the check only appears green because the lane is non-blocking. I think the smoke build should explicitly produce all artifacts it consumes. - [P2] A change to
windows-baseline.ymlitself selects Windows, but not the Runtime or Storage surfaces. That means a PR modifying those specialized steps will skip the exact paths it changes. - [P2]
git diff --name-onlyreports only the destination of a detected rename, so a cross-surface rename can hide the deleted source path and under-select Windows gates.--no-renames, or parsing both paths from--name-status -z, would keep this fail-safe.
Thanks again for working on this — the overall direction looks good, but these gaps make the scoped evidence less reliable than intended.
143ba42 to
c831323
Compare
|
Addressed all three findings in c831323:
I also removed the earlier optimization-evidence comment because smoke had failed under continue-on-error. Local verification: build:test plus Desktop build:smoke produced dist-renderer/index.html and the runtime filesystem worker; 14 tests pass with 1 Windows-only skip; workflow YAML parsing, Biome, and diff checks pass. Fresh Windows CI is now running. |
Astro-Han
left a comment
There was a problem hiding this comment.
Thanks — I rechecked the three findings against the current head and the fresh Windows run. They are all addressed:
- the smoke lane now builds only the missing Desktop renderer and runtime resource, verifies both artifacts, and successfully exercises the real Electron startup path;
- changes to windows-baseline.yml select both Runtime and Storage gates;
- impact detection uses --no-renames, with coverage for a cross-surface rename.
The remaining internal Windows baseline failures reproduce on the base revision and are unrelated to this PR. I found no new blocking issues. Approved.
Summary
Make the non-blocking Windows baseline consume the existing repository impact plan instead of running every expensive Windows surface for every pull request.
The measured #2523 baseline took 6m31s. Storage and managed-workspace recovery consumed about 4m08s, and smoke rebuilt artifacts that had already been produced. Desktop/UI pull requests should therefore retain Windows startup evidence while avoiding most of that unrelated critical path. Storage and Runtime changes retain their owning Windows evidence.
Refs #2142
Verification
中文说明
展开中文说明
本 PR 让非阻塞 Windows baseline 复用仓库现有的影响面计算,不再让所有 PR 都执行全部 Windows 重型测试。
实测 #2523 的 Windows baseline 总耗时 6 分 31 秒,其中 Storage 与 managed-workspace recovery 约占 4 分 08 秒,smoke 还重复进行了一次构建。调整后,Desktop/UI PR 仍有 Windows 构建和真实启动证据,但不会承担无关的 Storage/Crash 关键路径;Storage 和 Runtime 改动仍保留各自负责的 Windows 证据。
关联 #2142。
验证:12 项通过,1 项仅 Windows 环境运行而跳过;workflow YAML 解析、Biome 和 git diff 检查均通过。
Checklist
Does this PR entail a change in behavior?