文档:添加 Drone CI/CD 自动化部署说明
All checks were successful
continuous-integration/drone/push Build is passing
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:
179
README.md
179
README.md
@@ -40,4 +40,181 @@
|
||||
|
||||
## 举报有奖
|
||||
* 向官方提供有用线索并成功捣毁盗版个人或窝点,将会看成果给予 500~10000 不等的现金奖励
|
||||
* 官方唯一指定QQ:1272154962
|
||||
* 官方唯一指定QQ:1272154962
|
||||
|
||||
---
|
||||
|
||||
## 🚀 自动化部署
|
||||
|
||||
### Drone CI/CD 自动部署配置
|
||||
|
||||
本项目已配置 Drone CI/CD 实现代码推送后的全自动编译、部署流程。
|
||||
|
||||
#### 📋 部署架构
|
||||
|
||||
```
|
||||
开发者 Push 代码
|
||||
↓
|
||||
Gitea 仓库(git.waypeak.work)
|
||||
↓ [Webhook 触发]
|
||||
Drone CI Server(154.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
|
||||
- 查看每次构建的详细日志
|
||||
- 查看每个步骤的执行时间和状态
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user