name: Deploy AIDA Dev (dev/3.1_release_merge_MS) on: push: branches: - dev/3.1_release_merge_MS workflow_dispatch: jobs: build-and-deploy: runs-on: ubuntu-latest env: REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion/develop-MS-version-aida-back steps: - name: Checkout 代码 uses: actions/checkout@v4 with: ref: dev/3.1_release_merge_MS - name: 设置 JDK 21 uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '21' cache: 'maven' - name: Maven 打包 run: mvn clean package -DskipTests --batch-mode --no-transfer-progress - name: 准备部署文件 run: | mkdir -p deploy cp target/*.jar deploy/ cp Dockerfile deploy/ cp docker-compose.yml deploy/ - name: 配置 SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_KEY }}" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts 2>/dev/null || true - name: 部署到远程服务器 run: | REMOTE_USER=${{ secrets.SERVER_USER }} REMOTE_HOST=${{ secrets.SERVER_HOST }} DEPLOY_PATH=${{ env.REMOTE_DEPLOY_PATH }} echo "开始部署到 $REMOTE_HOST:$DEPLOY_PATH" # 创建远程目录 ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no $REMOTE_USER@$REMOTE_HOST " mkdir -p $DEPLOY_PATH " # 上传文件 scp -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no -r deploy/* $REMOTE_USER@$REMOTE_HOST:$DEPLOY_PATH/ # 在服务器执行部署 ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no $REMOTE_USER@$REMOTE_HOST " set -e cd $DEPLOY_PATH echo '停止旧容器...' docker-compose down || true echo '构建并启动新容器...' docker-compose up -d --build echo '部署完成!当前运行容器:' docker-compose ps docker logs develop-aida-ms --tail 50 " echo "✅ 部署成功!"