Skip to content

Latest commit

 

History

History
87 lines (60 loc) · 3.24 KB

File metadata and controls

87 lines (60 loc) · 3.24 KB

验证入口分层说明

目标:把“平时改代码该跑什么、发版前该跑什么、哪些检查依赖私有环境”说清楚。

三层验证入口

入口 命令 默认环境 用途
Fast npm run verify:fast 本地 / CI 日常改动、热点重构、PR 前快速守卫
Full npm run verify:full 本地 / CI 完整功能回归、示例回归、memory-server 矩阵
Release npm run verify:release 本地私有发布前 full 基础上追加 opt-in 真实环境检查

补充入口

命令 说明
npm test 默认统一门禁:smoke + compatibility + unit + integration + TS migration;不再隐式跑 legacy compat runner
npm run test:ts-migration TS-native compat 承接聚焦入口;当前已纳入默认 npm testverify:fast
npm run test:refactor-guard 热点重构三联回归:exports + runtime/model + sync
npm run test:server-matrix memory-server 默认矩阵(Node / Driver / MongoDB server)
npm run test:real-env:private 私有真实环境检查;默认不进入常规 verify / CI
npm run release:preflight 公开发布前门禁:检查 changelog / 支持矩阵 / 依赖治理文档,并串联 verify:fast + npm pack --dry-run

运行策略

1. 日常开发 / 小范围重构

npm run verify:fast

说明:当前 verify:fast 已显式串联 npm run test:ts-migration。如果只想定位 TS-native compat 承接面,可单独执行 npm run test:ts-migration

适合:

  • 热点文件拆分
  • 内部 helper 重构
  • 类型和导出面调整

2. 完整交付 / 大范围改动

npm run verify:full

适合:

  • 文档和示例联动更新
  • 行为变更或跨模块重构
  • 发版前的完整仓库回归

3. 私有真实环境验证

npm run test:real-env:private

说明:

  • 仅在具备私有 Mongo / SSH 等条件时执行
  • 不作为默认 CI 阶段
  • 主要用于验证 memory-server 无法覆盖的真实部署路径

需要的环境变量:

  • MONSQLIZE_REAL_SSH_HOST
  • MONSQLIZE_REAL_SSH_PORT
  • MONSQLIZE_REAL_SSH_USERNAME
  • MONSQLIZE_REAL_SSH_PASSWORD
  • MONSQLIZE_REAL_MONGO_URI

默认边界

  • 默认闭环npm test / verify:fast / verify:full / test:server-matrix
  • 显式 opt-intest:real-env:private
  • 公开发布前门禁release:preflight
  • 本地私有发布前补充verify:release

为什么 CI 不直接跑 verify:release

  • verify:release 依赖私有 SSH / Mongo 环境变量,适合操作者在本地或私有 runner 明确触发。
  • 公开 CI 与仓库默认验证链只承诺 memory-server + 仓库内可复现资产。
  • 因此 GitHub Actions 的 Release Preflight workflow 故意只运行 release:preflight,不假设私有环境存在。

仓库同时提供 GitHub Actions Release Preflight workflow,支持手动触发和 v* tag 推送时复用同一套发布前门禁。

说明:test:server-matrix 只保留跨 Driver / Server 组合下稳定可重复的兼容面。像 sync target fan-out 统计这类更依赖 change-stream 时序的深度断言,继续由常规 integration、test:refactor-guardrelease:preflight 覆盖。