84 lines
1.9 KiB
Bash
84 lines
1.9 KiB
Bash
|
|
#!/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!"
|