Skip to content

ci: 补齐跨平台 CI,并修复 Windows 下的测试兼容性#45

Open
DeconBear wants to merge 5 commits intoqiuzhi2046:mainfrom
DeconBear:feat/cross-platform-ci
Open

ci: 补齐跨平台 CI,并修复 Windows 下的测试兼容性#45
DeconBear wants to merge 5 commits intoqiuzhi2046:mainfrom
DeconBear:feat/cross-platform-ci

Conversation

@DeconBear
Copy link
Copy Markdown

背景

当前仓库在补齐多平台 CI 后,暴露出一批测试对平台细节的隐式假设,尤其是在 Windows 下会受到以下差异影响:

  • 路径分隔符差异(/\
  • npm / npm.cmd 的可执行名差异
  • CRLF 与 LF 的换行差异
  • Windows 短路径 / 长路径别名(如 RUNNER~1runneradmin)导致的路径断言失败
  • 少量依赖时序的测试在 Windows runner 上更容易超时

这次 PR 主要做两件事:补齐跨平台 CI,以及把这批测试改成真正的平台无关。

本次改动

  • 将 GitHub Actions CI 补齐为三平台矩阵:
    • ubuntu-latest
    • windows-latest
    • macos-latest
  • 三平台统一执行 smoke verify
  • 三平台统一执行完整 Vitest
  • 保留 ubuntu-latest 的 model regression 检查
  • 修复一批 Windows 下不稳定或失败的测试,重点包括:
    • 路径拼接和路径断言改为平台感知
    • npm.cmd 相关断言兼容 Windows
    • CRLF fixture / 文本匹配兼容
    • NVM / runtime / skills 相关测试中的 POSIX 路径假设修正
    • 个别容易在 Windows runner 上抖动的测试适当放宽超时
  • 额外修复 openclaw-package 相关测试中 Windows runner 短路径 / 长路径别名造成的误报,改为比较归一化后的真实路径位置

验证

本地已验证:

  • npm test 通过
  • npm run typecheck 通过
  • npm run build:app 通过
  • npm run test:model-regression -- --skip-typecheck 通过

CI 已验证:

  • 最新 workflow 全部通过
  • Smoke verify:Ubuntu / Windows / macOS 全通过
  • Vitest:Ubuntu / Windows / macOS 全通过
  • Model regression:Ubuntu 通过

影响

这次改动主要是 CI 和测试兼容性增强,不涉及预期的业务行为变更。目标是让后续功能改动能更早在多平台上暴露问题,减少
Windows / macOS 的回归漏检。

@qiuzhi2046
Copy link
Copy Markdown
Owner

感谢铁铁的贡献,给我们补全CI,非常有价值的PR,不过目前项目各平台都还没有非常成熟,判断当前不适合过早引入太多CI,不久一定能用上,再次感谢👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants