feat(ci): 开发session环境手册 + Gitea Actions CI/CD workflow + parquet同步脚本
CI/CD / test (push) Failing after 37s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped

- docs/session-environment-guide.md: 面向各开发session的部署→验证→冒烟手册(P1)
- .gitea/workflows/ci-cd.yml: 复用Mac runner编排 test→nas-smoke→vps(prod gate)
- scripts/nas_sync/sync_parquet.sh: parquet全量scp(static+valuation), setsid脱离会话
This commit is contained in:
2026-07-30 20:58:51 +08:00
parent d76171434b
commit efd0b23cd3
3 changed files with 216 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
name: CI/CD
# 三机流水线:push master → Mac runner 单测 → NAS 冒烟(ssh) → [审批] → VPS 部署+冒烟(ssh)
# Runner: 复用现有 online 的 mac-mini-arm64 (label: macos-arm64),不另起 NAS runner。
# Mac runner 作为编排节点,ssh 到 NAS/VPS 执行(~/.ssh/config 已配 sanguo-nas + 49.232.102.198)。
on:
push:
branches: [master]
workflow_dispatch: {} # 允许 Gitea UI 手动触发(实测/重跑用)
jobs:
# ---------- P2: 验证 ----------
test:
runs-on: macos-arm64
steps:
- uses: actions/checkout@v4
- name: pytest (Mac venv310, fixture)
run: |
source ~/.openclaw/sanguo_projects/sanguo_vnpy_v2/venv310/bin/activate
pytest tests/ -q
# TODO 实测: actions/checkout 能否在 Mac 拉取(Mac 外网)venv310 依赖是否覆盖 checkout 代码的 import
nas-smoke:
needs: test
runs-on: macos-arm64
steps:
- name: NAS 冒烟 (ssh NAS 跑容器读 quant_trading.db)
run: |
ssh sanguo-nas 'cd /volume1/stock/sanguo_vnpy_v2 && \
/var/packages/Docker/target/usr/bin/docker run --rm \
-v /volume1/stock:/volume1/stock -v $(pwd):/app \
sanguo_vnpy_v2:with-sqlite python /app/scripts/smoke_e2e.py'
# TODO 实测: Mac runner job 用户能否 ssh sanguo-nas(ssh key/known_hosts)
# ---------- P3: VPS CD (带人工 gate) ----------
vps:
needs: nas-smoke
runs-on: macos-arm64
environment: prod # 人工审批 gate;删除此行 = 验证通过全自动推 VPS
steps:
- uses: actions/checkout@v4
- name: promote 代码到 NAS+VPS
run: bash scripts/nas_sync/promote.sh
- name: VPS 冒烟 (LocalUnifiedProvider 真数据)
run: ssh 49.232.102.198 'cd C:\sanguo_vnpy_v2 && C:\Python310\python.exe -X utf8 scripts/data_platform/verify_unified_e2e.py'
# TODO 实测: prod environment 审批在 Gitea UI(仓库 Settings → Environments → prod 加 reviewer)