71 lines
2.2 KiB
YAML
71 lines
2.2 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:
|
|
deploy-mcp:
|
|
runs-on: ubuntu-latest
|
|
|
|
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)"
|