Some checks failed
continuous-integration/drone/push Build is failing
变更说明: - 不再使用 Docker 容器部署后端 - 使用 sdkman 管理的 JDK 17 直接运行 JAR - 使用 systemd 服务管理进程(自动重启、日志管理) 部署流程: 1. Drone CI 编译 BladeX 框架和后端项目 2. SCP 传输 blade-api.jar 到 /app/martial-backend/bin/ 3. SSH 执行 systemctl restart martial-backend 4. systemd 自动启动 Java 进程 优势: - 简化部署,不需要 Docker 镜像层 - 更直接的进程管理和日志查看 - 启动速度更快 - 资源占用更少 systemd 服务配置: - 服务名:martial-backend.service - 工作目录:/app/martial-backend - JAR 位置:/app/martial-backend/bin/blade-api.jar - 日志目录:/app/martial-backend/logs/ - JVM 参数:-Xms512m -Xmx1024m - 自动重启:失败后 10 秒重启 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
104 lines
2.4 KiB
YAML
104 lines
2.4 KiB
YAML
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 "已存在,跳过克隆"
|
||
- ls -la
|
||
- echo "开始编译 BladeX 框架..."
|
||
- cd martial-tool
|
||
- mvn clean install -DskipTests -q
|
||
- echo "✅ BladeX 框架编译完成"
|
||
|
||
# 步骤2:编译后端项目
|
||
- name: 编译后端项目
|
||
image: maven:3.9-eclipse-temurin-17
|
||
commands:
|
||
- echo "开始编译后端项目..."
|
||
- mvn clean package -DskipTests -Dmaven.test.skip=true
|
||
- ls -lh target/blade-api.jar
|
||
- echo "✅ 后端项目编译完成"
|
||
|
||
# 步骤3:传输 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
|
||
|
||
# 步骤4:重启后端服务
|
||
- 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 "✅ 后端部署完成"
|
||
|
||
# 步骤5:健康检查
|
||
- name: 健康检查
|
||
image: curlimages/curl:latest
|
||
commands:
|
||
- sleep 15 # 等待服务启动
|
||
- 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:
|
||
- 武术系统后端自动部署
|