Files
kt-financial-system/.gitea/workflows/deploy-mcp.yml
你的用户名 19699660a3
Some checks failed
Deploy to Production / Deploy to Server (push) Has been cancelled
Deploy to Production / Build and Test (push) Has been cancelled
ci: make MCP script shell-compatible
2025-11-08 20:43:57 +08:00

112 lines
3.3 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 -eu
if [ -n "${BASH_VERSION:-}" ]; then
set -o pipefail
fi
LOG_DIR=/home/atai/logs
mkdir -p "${LOG_DIR}"
LOG_FILE="${LOG_DIR}/deploy-mcp-$(date +%Y%m%d-%H%M%S).log"
exec > >(tee -a "${LOG_FILE}") 2>&1
echo "📄 当前部署日志: ${LOG_FILE}"
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)"