文档:添加 Drone CI/CD 自动化部署说明
All checks were successful
continuous-integration/drone/push Build is passing

新增内容:
- 部署架构图和流程说明
- 详细的部署步骤(4个阶段,耗时约5-6分钟)
- 日常开发使用方法
- .drone.yml 配置文件示例
- systemd 服务管理命令
- 环境要求说明
- 常见问题排查和手动回滚方法
- 部署历史查看入口

开发者现在可以通过 README.md 快速了解:
1. 如何触发自动部署(git push origin main)
2. 部署过程中发生了什么
3. 如何查看部署状态和日志
4. 遇到问题如何排查

🤖 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 22:21:54 +08:00
parent 319cfb4268
commit dfeaa48e28

177
README.md
View File

@@ -41,3 +41,180 @@
## 举报有奖 ## 举报有奖
* 向官方提供有用线索并成功捣毁盗版个人或窝点,将会看成果给予 50010000 不等的现金奖励 * 向官方提供有用线索并成功捣毁盗版个人或窝点,将会看成果给予 50010000 不等的现金奖励
* 官方唯一指定QQ1272154962 * 官方唯一指定QQ1272154962
---
## 🚀 自动化部署
### Drone CI/CD 自动部署配置
本项目已配置 Drone CI/CD 实现代码推送后的全自动编译、部署流程。
#### 📋 部署架构
```
开发者 Push 代码
Gitea 仓库git.waypeak.work
↓ [Webhook 触发]
Drone CI Server154.30.6.21:8080
↓ [Runner 执行]
编译 BladeX 框架 → 编译后端项目 → SCP 传输 JAR → systemctl 重启服务 → 健康检查
生产服务器部署完成154.30.6.21:8123
```
#### ⚙️ 部署配置
**服务器信息:**
- Drone Server: http://154.30.6.21:8080
- 生产环境: 154.30.6.21:8123
- 部署方式: systemd 服务管理
**部署步骤(全自动):**
1. **编译完整项目**约4-5分钟
- 克隆 BladeX 框架代码martial-tool
- 编译框架并安装到 Maven 本地仓库
- 编译后端项目martial-master
- 生成 blade-api.jar约236MB
2. **传输构建产物**约10-20秒
- 使用 SCP 传输 JAR 文件到生产服务器
- 目标路径: `/app/martial-backend/bin/blade-api.jar`
3. **部署到生产环境**约3秒
- 执行 `systemctl restart martial-backend`
- systemd 自动管理进程生命周期
- 自动重启、日志管理、故障恢复
4. **健康检查**约45秒
- 等待 Spring Boot 应用完全启动
- 检查健康端点: `/actuator/health`
- 验证部署成功
**总耗时:** 约 5-6 分钟
#### 🔧 使用方法
**日常开发流程:**
```bash
# 1. 修改代码
vim src/main/java/...
# 2. 提交代码
git add .
git commit -m "你的提交信息"
# 3. 推送到 main 分支(自动触发部署)
git push origin main
# 4. 查看部署进度
# 访问 Drone UI: http://154.30.6.21:8080
# 或等待约 5-6 分钟后直接访问生产环境
```
**部署完成后:**
- 访问后端 API: http://154.30.6.21:8123
- 查看 API 文档: http://154.30.6.21:8123/doc.html
- 健康检查: http://154.30.6.21:8123/actuator/health
#### 📂 配置文件
`.drone.yml` - Drone CI/CD 配置文件
```yaml
steps:
- name: 编译完整项目
image: maven:3.9-eclipse-temurin-17
commands:
- git clone https://git.waypeak.work/martial/martial-tool.git
- cd martial-tool && mvn clean install -DskipTests -q
- cd /drone/src && mvn clean package -DskipTests
- name: 传输构建产物
image: appleboy/drone-scp
settings:
host: 154.30.6.21
target: /app/martial-backend/bin/
- name: 部署到生产环境
image: appleboy/drone-ssh
settings:
script:
- systemctl restart martial-backend
- name: 健康检查
image: curlimages/curl:latest
commands:
- sleep 45
- curl -f http://154.30.6.21:8123/actuator/health
```
#### 🔐 Systemd 服务配置
服务名称: `martial-backend.service`
```bash
# 查看服务状态
systemctl status martial-backend
# 查看日志
journalctl -u martial-backend -f
# 手动重启
systemctl restart martial-backend
# 日志文件位置
/app/martial-backend/logs/application.log
/app/martial-backend/logs/error.log
```
#### 🛠️ 环境要求
**生产服务器:**
- JDK 17 (通过 sdkman 管理)
- MySQL 8.0 (端口: 33066)
- Redis 7 (端口: 63379)
- systemd 服务管理
**CI/CD 服务器:**
- Drone Server + Drone Runner (Docker 部署)
- Maven 3.9 + Eclipse Temurin JDK 17 (CI 容器镜像)
#### ⚠️ 注意事项
1. **仅 main 分支触发自动部署**
- 其他分支不会触发部署流程
- 开发分支请使用 feature/* 或 dev 分支
2. **部署失败排查**
```bash
# 查看 Drone 构建日志
访问: http://154.30.6.21:8080
# 查看应用日志
ssh root@154.30.6.21
tail -f /app/martial-backend/logs/application.log
# 检查服务状态
systemctl status martial-backend
```
3. **手动回滚**
```bash
# 如需回滚到之前的版本
# 1. 找到之前成功的 JAR 文件备份
# 2. 替换当前 JAR
# 3. 重启服务
systemctl restart martial-backend
```
#### 📊 部署历史
可通过 Drone UI 查看所有部署历史记录:
- 访问: http://154.30.6.21:8080
- 查看每次构建的详细日志
- 查看每个步骤的执行时间和状态
---