文档:添加 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 不等的现金奖励
|
* 向官方提供有用线索并成功捣毁盗版个人或窝点,将会看成果给予 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