Files
sanguo_vnpy_v2/.gitea/workflows/vps-deploy.yml
T
claude_dev 5d54e22f72
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Failing after 12s
CI/CD / nas-verify (push) Has been skipped
feat(ci): CI/CD分层(NAS自动验证+VPS dispatch)
promote.sh 加 --target nas|vps|all(拆 NAS/VPS,默认 all 兼容)。ci-cd.yml 重构: push→test→nas-deploy(推NAS后端+前端dist+restart容器)→nas-verify(login+strategy/list+dbbardata 秒级 gate),不再自动推 VPS。vps-deploy.yml 新建: workflow_dispatch+sha input,checkout 指定 commit→promote --target vps→verify,严格版本一致(VPS=NAS验证过的 commit)。两种 approve: 人工 Gitea UI Run workflow / agent MCP dispatch_workflow。原因: Gitea 不支持 environment approval gate,此前 promote.sh 同时推 NAS+VPS 无隔离,push 即上 prod。
2026-07-31 15:14:05 +08:00

43 lines
1.8 KiB
YAML

name: VPS Deploy
# VPS 生产部署(人工 UI 点 Run workflow 或 agent 通过 API dispatch 触发)。
# 与 ci-cd.yml 分离: ci-cd(push) 只到 NAS 验证; VPS 必须 nas-verify 绿后由此 workflow 主动触发。
#
# 严格版本一致: 接收 sha input, checkout 该 commit(= NAS 验证通过的那个), 部署到 VPS。
# 不会部署 nas-verify 未验证过的代码。
#
# 触发方式:
# 人工: Gitea → Actions → vps-deploy.yml → Run workflow → 填 sha(NAS 验证通过的 commit)
# agent: MCP dispatch_workflow workflow_id=vps-deploy.yml ref=master inputs={sha:<full-sha>}
# 或 curl POST /api/v1/repos/sanguo/sanguo_vnpy_v2/actions/workflows/vps-deploy.yml/dispatches
on:
workflow_dispatch:
inputs:
sha:
description: "NAS 验证通过的 commit SHA(完整 40 位, ci-cd 的 nas-verify 输出)"
required: true
type: string
jobs:
vps:
runs-on: macos-arm64
env:
HOME: /Users/chufeng
steps:
- name: checkout 指定 commit(= NAS 验证通过的版本)
env:
TOKEN: ${{ github.token }}
run: |
set -e
SHA="${{ inputs.sha }}"
git init .
git config --local http.proxy ""
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 "$SHA"
git checkout FETCH_HEAD
echo "部署 commit: $(git rev-parse HEAD)"
- name: promote 代码到 VPS (只推 VPS, 不动 NAS)
run: bash scripts/nas_sync/promote.sh --target vps
- 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'