docs(claude): 部署流程改分层(NAS自动验证+VPS dispatch两种approve)
CI/CD 已改分层: ci-cd.yml push→NAS 自动部署+验证(nas-verify 秒级 gate); vps-deploy.yml workflow_dispatch 触发推 VPS(人工 UI 点 / agent basic auth dispatch API)。promote.sh 加 --target nas|vps|all。CLAUDE.md 部署段同步。
This commit is contained in:
+18
-10
@@ -136,22 +136,30 @@ NAS 上用于本项目部署的目录有两个(容器挂载源):
|
||||
- A 股数据:`/volume1/stock/A股数据/`、`/volume1/stock/minute_kline/`
|
||||
- 回测结果库(NAS test 跑 backtest 生成):`/volume1/stock/sanguo_vnpy_v2/data/backtest_results.db`(config/backtest.yaml,已改 v2);VPS 侧用 `SANGUO_DB_PATH` env 覆盖、不读此 config
|
||||
|
||||
### 部署流程(CI/CD 自动为主,所有开发 session 必读)
|
||||
### 部署流程(NAS 自动 / VPS 主动触发,所有开发 session 必读)
|
||||
|
||||
**默认走 CI/CD 自动部署**:改完代码 `git push origin master` → Gitea Actions 自动跑:
|
||||
**NAS test 自动部署+验证**:改完代码 `git push origin master` → Gitea Actions 自动跑 ci-cd.yml:
|
||||
```
|
||||
test(pytest 数据层) → nas-smoke(NAS 副本 dbbardata) → vps(promote 到 NAS+VPS + verify_unified_e2e 真数据验证)
|
||||
test(pytest 数据层) → nas-deploy(推 NAS 后端+前端 dist+restart 容器) → nas-verify(login+strategy/list+dbbardata 秒级 gate)
|
||||
```
|
||||
全绿 = 代码已自动上 NAS test + VPS prod,**无需手动 rsync/scp**。
|
||||
nas-verify 全绿 = NAS test 已自动部署+验证通过。**VPS 不再自动推**(Gitea 无 environment approval gate;且要 NAS 验证通过才推 prod 的隔离)。
|
||||
|
||||
- **看 CI 结果**:Gitea → `sanguo/sanguo_vnpy_v2` → Actions(`http://192.168.2.154:3000/sanguo/sanguo_vnpy_v2/actions`),🟢已部署 / 🔴点 run 看 log 修完重 push
|
||||
- **workflow**:`.gitea/workflows/ci-cd.yml`;**详细流程 + 各角色速查**:`docs/session-environment-guide.md`
|
||||
- **限制**:pytest 只覆盖 `tests/data_platform`(数据层冒烟,api/live 缺 fastapi 靠各 session 自测);runner 是 Mac(睡眠时 CI 不跑);vps 全自动无 gate(push 即上 prod)
|
||||
**推 VPS prod(nas-verify 绿后,单独触发 vps-deploy.yml,两种方式)**:
|
||||
- **人工**:Gitea → Actions → `vps-deploy.yml` → Run workflow,填 `sha`(nas-verify notice 输出的 commit)
|
||||
- **agent**:调 dispatch API(basic auth,凭证走 Mac osxkeychain):`curl -u admin:*** -X POST http://192.168.2.154:3000/api/v1/repos/sanguo/sanguo_vnpy_v2/actions/workflows/vps-deploy.yml/dispatches -d '{"ref":"master","inputs":{"sha":"<full-sha>"}}'`
|
||||
(⚠️ MCP 的 claude_dev token 对仓库无 write 权限,dispatch 会 403;agent 走 Mac git credential / basic auth)
|
||||
vps-deploy checkout 你传的 SHA(= NAS 验证过的 commit)→ `promote --target vps` → verify_unified_e2e。**严格版本一致**。
|
||||
|
||||
**手动 promote(CI 没跑/Mac 睡眠/应急/只改配置想立即推时用)**:
|
||||
- **看 CI**:`http://192.168.2.154:3000/sanguo/sanguo_vnpy_v2/actions`,🟢已部署 / 🔴点 run 看 log
|
||||
- **workflow**:`.gitea/workflows/ci-cd.yml`(push→NAS 自动) + `vps-deploy.yml`(dispatch→VPS);**详细+各角色速查**:`docs/session-environment-guide.md`
|
||||
- **限制**:pytest 只覆盖 `tests/data_platform`;runner 是 Mac(睡眠时 CI 不跑)
|
||||
|
||||
**手动 promote(CI 没跑/Mac 睡眠/应急)**:
|
||||
```bash
|
||||
bash scripts/nas_sync/promote.sh # 全量推 NAS+VPS
|
||||
bash scripts/nas_sync/promote.sh --module sanguo_portfolio # 单模块
|
||||
bash scripts/nas_sync/promote.sh --target nas # 只推 NAS
|
||||
bash scripts/nas_sync/promote.sh --target vps # 只推 VPS
|
||||
bash scripts/nas_sync/promote.sh # 默认 all(NAS+VPS)
|
||||
bash scripts/nas_sync/promote.sh --module sanguo_portfolio --target nas # 单模块只推 NAS
|
||||
```
|
||||
手动晋升/rollback/数据铁律 runbook:`docs/three-env-code-promote.md`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user