diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index de9ebf6..f2b2e2d 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -13,7 +13,7 @@ jobs: password: 123quant-speed command: | TARGET_DIR="/home/quant/scoring-system" - REPO_URL="https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git" + REPO_URL="https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System" BRANCH="main" # 1. 检查用户是否在 docker 组 @@ -26,52 +26,70 @@ jobs: DOCKER_CMD="sudo docker" fi - # 2. 创建目标目录并设置权限 + # 2. 创建目标目录 echo "===== 创建目标目录: $TARGET_DIR =====" mkdir -p $TARGET_DIR - # 3. 检查是否是 git 仓库 - echo "===== 检查 git 仓库 =====" - cd $TARGET_DIR - if [ ! -d ".git" ]; then - echo "目录不是 git 仓库,将进行克隆..." - rm -rf $TARGET_DIR/* - GIT_TERMINAL_PROMPT=0 git clone -b $BRANCH $REPO_URL $TARGET_DIR 2>&1 || { - echo "Git clone 失败,尝试直接下载..." - exit 1 - } - else - echo "已是 git 仓库,执行 pull..." - git pull origin $BRANCH + # 3. 备份旧数据(如果存在) + echo "===== 备份配置 =====" + if [ -f "$TARGET_DIR/backend/.env" ]; then + cp $TARGET_DIR/backend/.env /tmp/scoring-env-backup 2>/dev/null || true fi - # 4. 停止并移除 Docker 容器 + # 4. 清理旧代码 + echo "===== 清理旧代码 =====" + cd $TARGET_DIR + rm -rf .git .gitea docker-compose.yml backend frontend 2>/dev/null || true + + # 5. 下载最新代码(使用 curl) + echo "===== 下载最新代码 =====" + curl -L -o /tmp/scoring-system.tar.gz "$REPO_URL/archive/refs/heads/$BRANCH.tar.gz" 2>&1 || { + echo "下载失败,尝试备用方案..." + wget -O /tmp/scoring-system.tar.gz "$REPO_URL/archive/refs/heads/$BRANCH.tar.gz" 2>&1 || exit 1 + } + + # 6. 解压代码 + echo "===== 解压代码 =====" + tar -xzf /tmp/scoring-system.tar.gz -C $TARGET_DIR + mv $TARGET_DIR/Scoring-System-*/* $TARGET_DIR/ + rm -rf $TARGET_DIR/Scoring-System-* + rm /tmp/scoring-system.tar.gz + + # 7. 恢复配置 + echo "===== 恢复配置 =====" + if [ -f /tmp/scoring-env-backup ]; then + cp /tmp/scoring-env-backup $TARGET_DIR/backend/.env + fi + + # 8. 停止并移除 Docker 容器 echo -e "\n===== 停止并清理 Docker =====" cd $TARGET_DIR $DOCKER_CMD compose down 2>/dev/null || true - # 5. 创建/更新 .env 文件 + # 9. 创建 .env 文件(如果没有) echo -e "\n===== 配置环境变量 =====" - mkdir -p $TARGET_DIR/backend - cat > $TARGET_DIR/backend/.env <<'EOF' - # Database Configuration - DB_NAME=scoring - DB_USER=quant-speed - DB_PASSWORD=123quant-speed - DB_HOST=6.6.6.66 - DB_PORT=5432 - # Aliyun OSS Configuration - ALIYUN_ACCESS_KEY_ID=LTAI5tE62GW8MKyoEaotzxXk - ALIYUN_ACCESS_KEY_SECRET=Zdzqo1fgj57DxxioXOotNKhJdSfVQW - ALIYUN_OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com - ALIYUN_OSS_BUCKET_NAME=tangledup-ai-staging - ALIYUN_OSS_INTERNAL_ENDPOINT=https://oss-cn-shanghai-internal.aliyuncs.com - # Aliyun Tingwu Configuration - ALIYUN_TINGWU_APP_KEY=6eOX7N3tKE0fDwb - DASHSCOPE_API_KEY=sk-84e9eef24a274f568d4fa15c97556c9f - EOF + if [ ! -f $TARGET_DIR/backend/.env ]; then + mkdir -p $TARGET_DIR/backend + cat > $TARGET_DIR/backend/.env <<'EOF' + # Database Configuration + DB_NAME=scoring + DB_USER=quant-speed + DB_PASSWORD=123quant-speed + DB_HOST=6.6.6.66 + DB_PORT=5432 + # Aliyun OSS Configuration + ALIYUN_ACCESS_KEY_ID=LTAI5tE62GW8MKyoEaotzxXk + ALIYUN_ACCESS_KEY_SECRET=Zdzqo1fgj57DxxioXOotNKhJdSfVQW + ALIYUN_OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com + ALIYUN_OSS_BUCKET_NAME=tangledup-ai-staging + ALIYUN_OSS_INTERNAL_ENDPOINT=https://oss-cn-shanghai-internal.aliyuncs.com + # Aliyun Tingwu Configuration + ALIYUN_TINGWU_APP_KEY=6eOX7N3tKE0fDwb + DASHSCOPE_API_KEY=sk-84e9eef24a274f568d4fa15c97556c9f + EOF + fi - # 6. 重新启动 Docker 容器 + # 10. 重新启动 Docker 容器 echo -e "\n===== 启动 Docker 容器 =====" $DOCKER_CMD compose up -d --build