Commit Graph
4 Commits
Author SHA1 Message Date
Stev_Wang 59f07d823a fix(ci): 按任务声明 VITE 环境变量避免污染单测
ci / 质量门禁 (push) Failing after 2m47s
背景:run #41 单测推进到 @lingxi/web 后失败——use-login-form.spec 断言真实登录,
但 VITE_PUBLIC_DEMO_SESSION=true 在 job 级 env 对所有步骤生效,且 turbo globalEnv
会把 VITE 变量下发给 test 任务,导致演示会话被打开。

改动:
- turbo.json:globalEnv 的 VITE 变量改为 build / dev 任务显式声明;
- ci.yml:VITE 变量从 job env 下移到「构建」「端到端冒烟」两个步骤。

影响面:单测不再看到 demo 会话开关;构建与 e2e 仍以 demo 会话构建。
回滚方式:revert 本提交。
验证证据:本地 turbo web build / test 通过;推送后观察 run #42。
2026-11-04 18:05:55 +08:00
Stev_Wang 0ed855b42a fix(ci): 声明 turbo 任务环境变量以适配严格模式
ci / 质量门禁 (push) Failing after 2m19s
背景:run #39/#40「单元测试与覆盖率」失败,bootstrap.spec 加载 env 报
DATABASE_URL / REDIS_URL / JWT_ACCESS_SECRET / JWT_REFRESH_SECRET Required。
根因:Turborepo 2.x 默认 Strict 环境模式,任务只能拿到 turbo.json 声明的变量,
ci.yml 的 job env 因此被剥离;本地因 .env 由 dotenv 在进程内加载而未暴露。

改动:turbo.json 的 test / test:int 任务声明上述 5 个变量(含 WEB_ORIGIN)。
影响面:这些变量进入任务环境与缓存键;值变化会让对应任务重新执行。
回滚方式:revert 本提交。
验证证据:推送后观察 run #41 的单测结果。
2026-11-04 18:01:11 +08:00
Stev_Wang 087f27936e fix(ci): 修复本地 CI 端到端冒烟的 demo 会话与 A0 遗留用例
背景:
- .gitea/workflows/ci.yml 在 job env 中设置 VITE_PUBLIC_DEMO_SESSION=true,
  e2e 用 vite preview + 演示会话登录;scripts/ci-local.mjs 没有同步这组 env,
  本地 CI 第 10 步必失败;
- e2e/smoke.spec.ts 是 A0 用例:还在找「请输入账号或邮箱」占位符、断言登录后落在工作台;
  A1 接入真实登录后占位符为「请输入账号或手机号」,且登录默认落地 /system/users。

改动:
- ci-local:构建与 e2e 步骤注入 VITE_PUBLIC_DEMO_SESSION / VITE_PUBLIC_API_BASE_URL
  (与 ci.yml 对齐),只作用于这两个步骤,避免影响单测对真实登录流程的断言;
- turbo.json:声明 globalEnv,保证构建产物随这两个 VITE 变量变化,不复用非 demo 构建缓存;
- smoke.spec:登录占位符改为「请输入账号或手机号」;登录后按 A1 现状断言落地 /system/users,
  再从顶部「工作台」进入首页并校验模块导航;
- README:单独执行 e2e 时补充 demo 会话环境变量,并注明 ci:local 已内置。

影响面:
- 仅本地 CI 与 e2e 冒烟;业务代码与 CI 工作流行为不变(ci.yml 本就在 job env 注入这些变量);
- 本地构建缓存会因 globalEnv 变更失效一次。

回滚方式:
- 回滚本提交即恢复原 ci-local 步骤、冒烟用例与 README。

验证证据:
- pnpm ci:local 全部门禁通过(用时 218.8s);
- e2e smoke 4 项通过(登录 / 403 / 模块切换 / 404;A1 账号周期 7 项按预期 skip)。
2026-11-03 16:25:55 +08:00
Stev_Wang b3a2a843bb build(ci): 建立单仓工具链与质量门禁
统一 pnpm 10 + Node 24.15.0 + Turborepo 单仓,落地 ESLint 9 flat、Prettier、commitlint、husky 与 Gitea CI,作为后续批次的一致门禁。
2026-11-02 17:20:17 +08:00