diff --git a/docs/design/13-toolchain-and-dev-workflow.md b/docs/design/13-toolchain-and-dev-workflow.md index 363854a..0ffeed6 100644 --- a/docs/design/13-toolchain-and-dev-workflow.md +++ b/docs/design/13-toolchain-and-dev-workflow.md @@ -450,6 +450,33 @@ P1 必须先配好以下工具,否则机械门控跑不起来: | `pytest-cov` | 覆盖率 | `pip install pytest-cov` | | `act-runner` | CI 执行器 | 下载 Go 二进制 | +### 8.5 CI 隔离测试环境(E2E 安全运行) + +E2E 自动跑的核心前提:**不污染生产环境**。通过 CI 隔离环境实现: + +``` +CI 临时测试环境(每次 CI 自动创建) +├─ 独立 venv(每次 CI 新建) +├─ 临时 SQLite(tmpdir,跑完销毁) +├─ 临时端口(8084,不和生产 8083 冲突) +├─ 启动 FastAPI 服务 → 跑 E2E → 关闭 +└─ 跑完整个 tmpdir 删除,不留痕迹 + +生产环境(~/.sanguo_projects/)完全不受影响 +``` + +**效果**:E2E 可以在每次 PR 到 main 时自动跑,无需担心污染生产数据或影响生产服务。 + +**环境总结**: + +| 环境 | 位置 | 用途 | 生命周期 | +|------|------|------|---------| +| 开发 | `~/.openclaw/sanguo_projects/` | 改代码、本地调试 | 常驻 | +| CI 测试 | CI runner 临时目录 | lint/unit/integration/E2E | CI 跑完即销毁 | +| 生产 | `~/.sanguo_projects/` | 正式运行服务 | 常驻 | + +**schema 变更检查**(可选):CI 中加一步对比数据库 schema 变更,检测破坏性操作(删字段/改类型)。检测到则提 Issue 人工确认。可通过配置开关强制绕过。 + --- ## §9. 完整开发流程(端到端) @@ -490,8 +517,8 @@ P1 必须先配好以下工具,否则机械门控跑不起来: └─ 部署失败 → 自动回滚 → 人工介入 7. 验证 - └─ 日常迭代:标准门控已覆盖 - └─ E2E:用户手动触发(不自动跑) + └─ CI 隔离环境中自动跑 E2E(不污染生产) + └─ 用户测试(手动) └─ 发现问题 → 新开 Issue(经 Review 后再开发) ```