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 DEPLOY_PATH="${DEPLOY_PATH:-/home/atai/kt-financial-system}" MCP_PACKAGE="${MCP_PACKAGE:-@vben/finance-mcp-service}" 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 "${DEPLOY_PATH}" ]; 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)"