ci: align production tests with Node 22

This commit is contained in:
Jesse_Chen
2026-07-22 18:59:55 +08:00
parent 48dead992f
commit a95f388dc3
2 changed files with 6 additions and 6 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ jobs:
with: { python-version: '3.11' }
- uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22'
cache: npm
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
+5 -5
View File
@@ -449,11 +449,11 @@
- 最近更新:2026-07-22
- 影响面:production 发布门禁、首页主题入口、会话输入区、生时校正组件服务端渲染测试
- 用户现象:production 应用构建成功,但完整前端测试有 7 项失败,导致最新 `main` 无法通过发布前验证。
- 触发条件:运行完整前端测试;旧断言仍查找已移除的首页证据预览、固定 180px 模型菜单、无条件输入区类名和旧 `profile` 文案来源,组件测试还会在 Node ESM 下加载 GSAP 默认导出
- 根因:首页与普通 session 的布局和文案已经更新,测试契约没有随产品行为同步;`chat-message-row` 使用 GSAP 默认导入,在 Next 构建中可用,但 Node ESM 测试运行器解析到的模块形态不同
- 修复:测试改为锁定当前首页主题选择、内容自适应模型菜单、带首页修饰类的停靠输入区和 `profileDraft` 文案来源;GSAP 改用其正式命名导出,保持浏览器行为不变并恢复 Node ESM 组件测试
- 验证:6 个相关测试文件、完整前端测试、ESLint、production build 与 patch check 全部通过后方可发布。
- 防复发:产品 UI 结构调整时必须在同一提交同步源码契约测试;跨 Next 与 Node 运行依赖优先使用包声明的稳定命名导出
- 触发条件:运行完整前端测试;旧断言仍查找已移除的首页证据预览、固定 180px 模型菜单、无条件输入区类名和旧 `profile` 文案来源;旧手动 workflow 还固定在 Node 20,而当前 `@mastra/core` 明确要求 Node 22.13 以上
- 根因:首页与普通 session 的布局和文案已经更新,测试契约没有随产品行为同步;`Jyotish Skill Tests` 的 Node 版本也落后于其他 production 门禁和应用依赖声明,使 Node 20 把 GSAP ESM 错误解析成 CommonJS namespace
- 修复:测试改为锁定当前首页主题选择、内容自适应模型菜单、带首页修饰类的停靠输入区和 `profileDraft` 文案来源;GSAP 使用正式命名导出;手动 production 测试 workflow 与其余门禁统一到 Node 22
- 验证:6 个相关测试文件、Node 22 完整前端测试、ESLint、production build 与 patch check 全部通过后方可发布。
- 防复发:产品 UI 结构调整时必须在同一提交同步源码契约测试;workflow 的 Node 主版本不得低于已锁定运行依赖声明的最低版本
- 相关记录:BUG-022、BUG-024、BUG-025
- 复发自:无
- 修复版本:待提交(production gate