添加 Drone CI/CD 自动化部署配置
Some checks failed
continuous-integration/drone/push Build encountered an error

1. 新增 .drone.yml 配置文件
   - 自动编译 BladeX 框架依赖
   - 自动编译后端项目并打包
   - 构建 Docker 镜像
   - 自动部署到生产服务器
   - 健康检查验证部署成功

2. 新增 Dockerfile
   - 基于 eclipse-temurin:17-jre 轻量镜像
   - 配置 JVM 参数优化内存使用
   - 添加健康检查端点
   - 支持多环境配置(dev/test/prod)

现在推送代码到 main 分支后,Drone CI 会自动:
- 编译项目
- 构建 Docker 镜像
- 部署到 154.30.6.21 服务器
- 执行健康检查

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
n72595987@gmail.com
2025-11-29 17:04:39 +08:00
parent 38472ee832
commit 5ce4c4601d
2 changed files with 142 additions and 8 deletions

113
.drone.yml Normal file
View File

@@ -0,0 +1,113 @@
kind: pipeline
type: docker
name: 武术系统后端自动部署
# 只在 main 分支触发
trigger:
branch:
- main
event:
- push
steps:
# 步骤1编译 BladeX 框架
- name: 编译框架依赖
image: maven:3.9-eclipse-temurin-17
volumes:
- name: maven-cache
path: /root/.m2
commands:
- echo "开始编译 BladeX 框架..."
- cd /drone/src/../martial-tool
- mvn clean install -DskipTests -q
- echo "✅ BladeX 框架编译完成"
# 步骤2编译后端项目
- name: 编译后端项目
image: maven:3.9-eclipse-temurin-17
volumes:
- name: maven-cache
path: /root/.m2
commands:
- echo "开始编译后端项目..."
- mvn clean package -DskipTests -Dmaven.test.skip=true
- ls -lh target/blade-api.jar
- echo "✅ 后端项目编译完成"
# 步骤3构建 Docker 镜像
- name: 构建Docker镜像
image: plugins/docker
settings:
registry: registry.cn-hangzhou.aliyuncs.com # 可选:使用阿里云镜像仓库
repo: martial/backend
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
dockerfile: Dockerfile
# username: # 如果需要推送到私有仓库
# from_secret: docker_username
# password:
# from_secret: docker_password
# 步骤4部署到服务器
- name: 部署到生产环境
image: appleboy/drone-ssh
settings:
host: 154.30.6.21 # 部署服务器地址
username: root
key:
from_secret: ssh_key # 需要在 Drone 中配置 SSH 私钥
port: 22
script:
- cd /app/martial
- docker-compose pull backend
- docker-compose up -d backend
- docker ps | grep martial-backend
- echo "✅ 后端部署完成"
# 步骤5健康检查
- name: 健康检查
image: curlimages/curl:latest
commands:
- sleep 15 # 等待服务启动
- curl -f http://154.30.6.21:8123/actuator/health || exit 1
- echo "✅ 健康检查通过"
# 挂载卷(缓存 Maven 依赖,加速构建)
volumes:
- name: maven-cache
host:
path: /data/drone-cache/maven
# 构建通知(可选)
---
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:
- 武术系统后端自动部署