配置 CI/CD 与预览环境

配置 CI/CD 与预览环境

这篇笔记还在编辑中,内容可能会继续补充、调整或重写。

本阶段目标

让每个 Pull Request 自动完成冻结安装、质量检查、测试和构建,并获得可访问的临时预览地址。合并后推广已经验证过的制品,而不是在生产环境重新构建。

流水线顺序

检出代码
  → 固定 Node.js 与 pnpm
  → pnpm install --frozen-lockfile
  → format / lint / typecheck
  → unit / component test
  → production build
  → browser test
  → upload immutable artifact
  → deploy preview

快速、确定性的检查放在前面,昂贵的浏览器测试可以在基础检查通过后执行。并行任务必须显式声明依赖,不能碰巧依赖另一个 Job 留在机器上的文件。

制品身份

每个制品至少关联:

  • Git 提交 SHA
  • 构建时间与流水线编号
  • Node.js、pnpm 和关键构建工具版本
  • Source Map 对应的发布版本
  • 制品摘要或完整性信息

运行时配置应通过受控方式注入。需要环境差异时,优先让同一制品读取不同运行时配置,而不是为测试、预发布和生产分别构建代码。

预览环境

预览环境需要明确访问权限、后端依赖、测试数据、有效期和自动回收机制。外部贡献分支默认不应获得生产密钥。

故障演练

  1. 修改 package.json 但不更新 lockfile,确认冻结安装失败。
  2. 让构建成功但浏览器测试失败,确认部署不会继续。
  3. 部署一个已知错误版本,再通过制品记录恢复上一稳定版本。

验收标准

  • Pull Request 状态清楚展示各质量门禁
  • 安装阶段不会改写 lockfile
  • 失败测试会保留报告、截图或 Trace
  • 预览环境自动创建并在关闭后回收
  • 生产部署能追溯到已验证制品,并有可演练的回滚入口

下一篇:分析并优化构建产物