#!/bin/bash

# QAUP 一键升级脚本

set -e

echo "=== QAUP 一键升级 ==="

# 检查新版本文件
if [ ! -f "new-app.jar" ]; then
    echo "❌ 请先将新版本文件重命名为 new-app.jar"
    echo "   例如: cp qaup-admin-1.0.2.jar new-app.jar"
    exit 1
fi

# 备份当前版本
echo "备份当前版本..."
cp app.jar app.jar.backup.$(date +%Y%m%d-%H%M%S)

# 停止应用
echo "停止应用服务..."
docker compose stop qaup-app

# 替换应用
echo "更新应用文件..."
cp new-app.jar app.jar

# 启动应用
echo "启动应用服务..."
docker compose start qaup-app

# 等待启动
echo "等待服务启动（30秒）..."
sleep 30

# 检查服务状态
if curl -f -s http://localhost:8080/actuator/health > /dev/null 2>&1; then
    echo "✅ 升级成功！"
    echo "备份文件已保存，如有问题可手动回滚"
else
    echo "❌ 升级失败，尝试回滚..."
    docker compose stop qaup-app
    cp app.jar.backup.* app.jar 2>/dev/null || echo "未找到备份文件"
    docker compose start qaup-app
    echo "请检查日志: docker compose logs qaup-app"
fi