fix(ci): 绕过github action(git fetch Gitea本仓库)+HOME恢复Mac环境+local禁proxy
This commit is contained in:
+35
-20
@@ -1,31 +1,41 @@
|
|||||||
name: CI/CD
|
name: CI/CD
|
||||||
# 三机流水线:push master → Mac runner 单测 → NAS 冒烟(ssh) → [审批] → VPS 部署+冒烟(ssh)
|
# 三机流水线:push master → Mac runner 单测 → NAS 冒烟(ssh) → [prod gate] → VPS 部署+冒烟
|
||||||
# Runner: 复用现有 online 的 mac-mini-arm64 (label: macos-arm64),不另起 NAS runner。
|
# Runner: 复用 online 的 mac-mini-arm64 (label: macos-arm64),host executor 直接跑 Mac shell。
|
||||||
# Mac runner 作为编排节点,ssh 到 NAS/VPS 执行(~/.ssh/config 已配 sanguo-nas + 49.232.102.198)。
|
# 关键:①不用 actions/checkout(避免从 github 拉 action 国内 EOF),改 git fetch Gitea 本仓库
|
||||||
|
# ②env HOME=/Users/chufeng 恢复 Mac 全环境(ssh config/key + venv310),act_runner 默认 HOME 是临时目录
|
||||||
|
# ③git config --local http.proxy "" 禁代理(LAN Gitea 直连,不动全局 .gitconfig)
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [master]
|
branches: [master]
|
||||||
workflow_dispatch: {} # 允许 Gitea UI 手动触发(实测/重跑用)
|
workflow_dispatch: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# ---------- P2: 验证 ----------
|
# ---------- P2: 验证 ----------
|
||||||
test:
|
test:
|
||||||
runs-on: macos-arm64
|
runs-on: macos-arm64
|
||||||
|
env:
|
||||||
|
HOME: /Users/chufeng
|
||||||
steps:
|
steps:
|
||||||
- name: 清除 git 代理 (LAN Gitea 不走 ClashX 127.0.0.1:7890)
|
- name: checkout (直连 Gitea, git fetch 绕过 github action)
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ github.token }}
|
||||||
run: |
|
run: |
|
||||||
git config --global --unset http.proxy 2>/dev/null || true
|
git init .
|
||||||
git config --global --unset https.proxy 2>/dev/null || true
|
git config --local http.proxy ""
|
||||||
- uses: actions/checkout@v4
|
git config --local https.proxy ""
|
||||||
- name: pytest (Mac venv310, fixture)
|
git remote add origin "http://oauth2:${TOKEN}@192.168.2.154:3000/${GITHUB_REPOSITORY}.git"
|
||||||
|
git fetch --depth 1 origin "${GITHUB_SHA}"
|
||||||
|
git checkout FETCH_HEAD
|
||||||
|
- name: pytest (Mac venv310, fixture, 跑 checkout 代码)
|
||||||
run: |
|
run: |
|
||||||
source ~/.openclaw/sanguo_projects/sanguo_vnpy_v2/venv310/bin/activate
|
source /Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy_v2/venv310/bin/activate
|
||||||
pytest tests/ -q
|
PYTHONPATH="$GITHUB_WORKSPACE" pytest tests/ -q
|
||||||
# TODO 实测: actions/checkout 能否在 Mac 拉取(Mac 外网);venv310 依赖是否覆盖 checkout 代码的 import
|
|
||||||
|
|
||||||
nas-smoke:
|
nas-smoke:
|
||||||
needs: test
|
needs: test
|
||||||
runs-on: macos-arm64
|
runs-on: macos-arm64
|
||||||
|
env:
|
||||||
|
HOME: /Users/chufeng
|
||||||
steps:
|
steps:
|
||||||
- name: NAS 冒烟 (ssh NAS 跑容器读 quant_trading.db)
|
- name: NAS 冒烟 (ssh NAS 跑容器读 quant_trading.db)
|
||||||
run: |
|
run: |
|
||||||
@@ -33,21 +43,26 @@ jobs:
|
|||||||
/var/packages/Docker/target/usr/bin/docker run --rm \
|
/var/packages/Docker/target/usr/bin/docker run --rm \
|
||||||
-v /volume1/stock:/volume1/stock -v $(pwd):/app \
|
-v /volume1/stock:/volume1/stock -v $(pwd):/app \
|
||||||
sanguo_vnpy_v2:with-sqlite python /app/scripts/smoke_e2e.py'
|
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) ----------
|
# ---------- P3: VPS CD (prod gate) ----------
|
||||||
vps:
|
vps:
|
||||||
needs: nas-smoke
|
needs: nas-smoke
|
||||||
runs-on: macos-arm64
|
runs-on: macos-arm64
|
||||||
environment: prod # 人工审批 gate;删除此行 = 验证通过全自动推 VPS
|
env:
|
||||||
|
HOME: /Users/chufeng
|
||||||
|
environment: prod # 人工审批 gate;删此行 = 验证通过全自动推 VPS
|
||||||
steps:
|
steps:
|
||||||
- name: 清除 git 代理 (LAN Gitea 不走 ClashX 127.0.0.1:7890)
|
- name: checkout
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ github.token }}
|
||||||
run: |
|
run: |
|
||||||
git config --global --unset http.proxy 2>/dev/null || true
|
git init .
|
||||||
git config --global --unset https.proxy 2>/dev/null || true
|
git config --local http.proxy ""
|
||||||
- uses: actions/checkout@v4
|
git config --local https.proxy ""
|
||||||
|
git remote add origin "http://oauth2:${TOKEN}@192.168.2.154:3000/${GITHUB_REPOSITORY}.git"
|
||||||
|
git fetch --depth 1 origin "${GITHUB_SHA}"
|
||||||
|
git checkout FETCH_HEAD
|
||||||
- name: promote 代码到 NAS+VPS
|
- name: promote 代码到 NAS+VPS
|
||||||
run: bash scripts/nas_sync/promote.sh
|
run: bash scripts/nas_sync/promote.sh
|
||||||
- name: VPS 冒烟 (LocalUnifiedProvider 真数据)
|
- 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'
|
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)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user