Files
martial-master/.drone.yml
n72595987@gmail.com f9df72ebb8
Some checks failed
continuous-integration/drone/push Build is failing
改为直接部署:使用 systemd 管理 Java 进程
变更说明:
- 不再使用 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>
2025-11-29 18:17:22 +08:00

104 lines
2.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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:
- 武术系统后端自动部署