Files
kt-financial-system/.gitea/workflows/deploy-mcp.yml
你的用户名 076b9fac5f
Some checks failed
Deploy Finance MCP Service / build-mcp (push) Successful in 5m21s
Deploy to Production / Build and Test (push) Successful in 10m12s
Deploy Finance MCP Service / deploy-mcp (push) Failing after 4s
Deploy to Production / Deploy to Server (push) Successful in 6m24s
feat: add Finance MCP workflow
2025-11-08 19:39:10 +08:00

102 lines
3.0 KiB
YAML

name: Deploy Finance MCP Service
on:
push:
branches:
- main
paths:
- 'apps/finance-mcp-service/**'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
workflow_dispatch:
env:
DEPLOY_PATH: /home/atai/kt-financial-system
MCP_PACKAGE: '@vben/finance-mcp-service'
jobs:
build-mcp:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-mcp-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-mcp-pnpm-
- name: Install dependencies (MCP only)
run: pnpm install --filter ${MCP_PACKAGE}... --frozen-lockfile
- name: Typecheck MCP service
run: pnpm --filter ${MCP_PACKAGE} typecheck
- name: Build MCP service
run: pnpm --filter ${MCP_PACKAGE} build
deploy-mcp:
runs-on: ubuntu-latest
needs: build-mcp
steps:
- name: Deploy MCP artifacts to server
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.SERVER_HOST || '172.16.74.149' }}
username: ${{ secrets.SERVER_USER || 'atai' }}
password: ${{ secrets.SERVER_PASSWORD || 'wengewudi666808' }}
port: ${{ secrets.SERVER_PORT || '22' }}
command_timeout: 30m
script: |
set -e
echo "🚀 部署 Finance MCP 服务"
cd /home/atai
if [ ! -d "kt-financial-system" ]; then
echo "📥 首次部署,正在克隆仓库..."
git clone https://gitea.ktyun.cc/chenjiangjiang/kt-financial-system.git
fi
cd ${DEPLOY_PATH}
git fetch origin main
git reset --hard origin/main
echo "🧱 使用容器化 Node 环境构建..."
sudo docker run --rm \
-v $(pwd):/workspace \
-w /workspace \
node:20-bullseye bash -lc "npm install -g pnpm@9 && pnpm install --filter ${MCP_PACKAGE}... --frozen-lockfile && pnpm --filter ${MCP_PACKAGE} build"
echo "🗂 生成运行入口,方便手动或自动触发 MCP 服务"
cat <<'EOF' | sudo tee /home/atai/run-finance-mcp.sh >/dev/null
#!/bin/bash
set -e
cd /home/atai/kt-financial-system
exec pnpm --filter @vben/finance-mcp-service start
EOF
sudo chmod +x /home/atai/run-finance-mcp.sh
echo "✅ MCP 服务代码已更新至 $(git rev-parse --short HEAD)"