Files
monisuo/deploy/bt_webhook.sh

84 lines
1.9 KiB
Bash
Raw Normal View History

#!/bin/bash
# ============================================
# 宝塔 Webhook 自动部署脚本 - Monisuo
# ============================================
# 配置项 - 请根据实际情况修改
PROJECT_PATH="/opt/monisuo" # 项目部署路径
GIT_REPO="http://sion:woshisaw.@8.155.172.147:3001/sion/monisuo.git" # Git仓库地址
JAR_NAME="monisuo-1.0.jar" # JAR包名称
LOG_FILE="/opt/monisuo/deploy.log" # 部署日志文件
# 记录日志函数
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> $LOG_FILE
}
log "========== 开始部署 =========="
# 进入项目目录
cd $PROJECT_PATH || {
log "错误: 无法进入目录 $PROJECT_PATH"
exit 1
}
# 拉取最新代码
log "正在拉取最新代码..."
git pull origin main >> $LOG_FILE 2>&1
if [ $? -ne 0 ]; then
log "错误: Git pull 失败"
exit 1
fi
log "代码拉取成功"
# 检查是否有更新
CHANGED=$(git diff --name-only HEAD~1 HEAD)
log "变更文件: $CHANGED"
# 如果有Java代码变更重新打包
if echo "$CHANGED" | grep -q "src/"; then
log "检测到Java代码变更开始重新打包..."
# Maven打包
mvn clean package -DskipTests >> $LOG_FILE 2>&1
if [ $? -ne 0 ]; then
log "错误: Maven打包失败"
exit 1
fi
log "Maven打包成功"
fi
# 重启后端服务
log "正在重启后端服务..."
# 停止旧服务
pkill -f $JAR_NAME
sleep 2
# 启动新服务
nohup java -jar $PROJECT_PATH/target/$JAR_NAME --spring.profiles.active=dev > $PROJECT_PATH/app.log 2>&1 &
if [ $? -eq 0 ]; then
log "后端服务启动成功"
else
log "错误: 后端服务启动失败"
exit 1
fi
# 检查服务是否启动成功
sleep 5
if pgrep -f $JAR_NAME > /dev/null; then
log "服务运行正常"
else
log "错误: 服务启动后未运行"
exit 1
fi
log "========== 部署完成 =========="
echo "Deploy Success!"