Files
martial-master/.drone.yml
n72595987@gmail.com 44f01e2219
Some checks failed
continuous-integration/drone/push Build is failing
修复 CI 构建:合并克隆和编译步骤
问题:
- 分离的克隆步骤(alpine/git)可能存在权限或文件共享问题
- 导致后续编译步骤找不到克隆的目录

解决方案:
- 将克隆和编译合并到同一个步骤
- 使用 maven 镜像直接执行 git clone(maven 镜像包含 git)
- 在同一容器环境中完成克隆和编译,避免跨容器问题
- 添加错误处理,如果目录已存在则跳过克隆

优势:
- 简化流程,减少步骤数量
- 避免容器间文件系统共享问题
- 更可靠的执行

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 18:02:25 +08:00

106 lines
2.6 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构建 Docker 镜像
- name: 构建Docker镜像
image: plugins/docker
settings:
registry: registry.cn-hangzhou.aliyuncs.com # 可选:使用阿里云镜像仓库
repo: martial/backend
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
dockerfile: Dockerfile
# username: # 如果需要推送到私有仓库
# from_secret: docker_username
# password:
# from_secret: docker_password
# 步骤4部署到服务器
- name: 部署到生产环境
image: appleboy/drone-ssh
settings:
host: 154.30.6.21 # 部署服务器地址
username: root
key:
from_secret: ssh_key # 需要在 Drone 中配置 SSH 私钥
port: 22
script:
- cd /app/martial
- docker-compose pull backend
- docker-compose up -d backend
- docker ps | grep martial-backend
- 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:
- 武术系统后端自动部署