feat: add Finance MCP workflow
Some checks failed
Some checks failed
This commit is contained in:
101
.gitea/workflows/deploy-mcp.yml
Normal file
101
.gitea/workflows/deploy-mcp.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
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)"
|
||||
Reference in New Issue
Block a user