kind: pipeline type: docker name: 武术系统后端自动部署 # 只在 main 分支触发 trigger: branch: - main event: - push steps: # 步骤1:克隆并编译 BladeX 框架,然后编译后端项目 - name: 编译完整项目 image: maven:3.9-eclipse-temurin-17 commands: - echo "克隆 BladeX 框架代码..." - cd /drone/src/.. - git clone https://git.waypeak.work/martial/martial-tool.git || echo "已存在,跳过克隆" - echo "开始编译 BladeX 框架..." - cd martial-tool - mvn clean install -DskipTests -q - echo "✅ BladeX 框架编译完成,已安装到 Maven 本地仓库" - echo "开始编译后端项目..." - cd /drone/src - mvn clean package -DskipTests -Dmaven.test.skip=true - ls -lh target/blade-api.jar - echo "✅ 后端项目编译完成" # 步骤2:传输 JAR 文件到服务器 - name: 传输构建产物 image: appleboy/drone-scp settings: host: 154.30.6.21 username: root key: from_secret: ssh_key port: 22 target: /app/martial-backend/bin/ source: - target/blade-api.jar strip_components: 1 # 步骤3:重启后端服务 - name: 部署到生产环境 image: appleboy/drone-ssh settings: host: 154.30.6.21 username: root key: from_secret: ssh_key port: 22 script: - systemctl restart martial-backend - sleep 3 - systemctl status martial-backend --no-pager - echo "✅ 后端部署完成" # 步骤4:健康检查 - name: 健康检查 image: curlimages/curl:latest commands: - sleep 45 # 等待服务完全启动(Spring Boot 应用需要约30-40秒) - curl -f http://154.30.6.21:8123/actuator/health || exit 1 - echo "✅ 健康检查通过" # 构建通知(可选) --- kind: pipeline type: docker name: 构建通知 trigger: branch: - main status: - success - failure steps: - name: 发送通知 image: drillster/drone-email settings: host: smtp.qq.com # 邮件服务器 port: 465 from: your-email@qq.com recipients: - your-email@qq.com username: from_secret: email_username password: from_secret: email_password when: status: - failure # 只在失败时发送邮件 depends_on: - 武术系统后端自动部署