Files
sanguo_vnpy_v2/.gitea/workflows/ci-cd.yml
T
claude_dev d31dd5e159
CI/CD / test (push) Failing after 45s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped
fix(ci): 清除git代理(LAN Gitea不走ClashX 7890)修checkout失败
2026-07-30 21:16:38 +08:00

54 lines
2.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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:
- name: 清除 git 代理 (LAN Gitea 不走 ClashX 127.0.0.1:7890)
run: |
git config --global --unset http.proxy 2>/dev/null || true
git config --global --unset https.proxy 2>/dev/null || true
- 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:
- name: 清除 git 代理 (LAN Gitea 不走 ClashX 127.0.0.1:7890)
run: |
git config --global --unset http.proxy 2>/dev/null || true
git config --global --unset https.proxy 2>/dev/null || true
- 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)