diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 24730e3..b819684 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -29,19 +29,27 @@ jobs: # 3. 拉取最新代码(用 curl 下载压缩包,避免 git 网络不稳定) echo -e "\n===== 拉取最新代码 =====" ARCHIVE_URL="https://sdd:zsj981107@gitea.tangledup-ai.com/quant-speed-AI/Scoring-System/archive/main.tar.gz" + rm -f /tmp/scoring.tar.gz + DOWNLOAD_OK=false for i in 1 2 3; do echo "第 $i 次尝试下载代码包..." - curl -L --retry 3 --retry-delay 3 -o /tmp/scoring.tar.gz "$ARCHIVE_URL" && break - echo "下载失败,等待5秒后重试..." + curl -L --http1.1 --retry 2 --retry-delay 3 -o /tmp/scoring.tar.gz "$ARCHIVE_URL" + FILE_SIZE=$(stat -c%s /tmp/scoring.tar.gz 2>/dev/null || echo 0) + echo "下载文件大小: $FILE_SIZE bytes" + if [ "$FILE_SIZE" -gt 10240 ] && tar -tzf /tmp/scoring.tar.gz > /dev/null 2>&1; then + DOWNLOAD_OK=true + break + fi + echo "文件不完整,等待5秒后重试..." + rm -f /tmp/scoring.tar.gz sleep 5 done - if [ ! -f /tmp/scoring.tar.gz ]; then + if [ "$DOWNLOAD_OK" != "true" ]; then echo "错误:代码下载失败,终止部署" exit 1 fi echo "解压代码..." tar -xzf /tmp/scoring.tar.gz -C /tmp/ - # gitea 解压出来的目录名是 Scoring-System rsync -av --exclude='.env' --exclude='media/' /tmp/Scoring-System/ $TARGET_DIR/ rm -rf /tmp/scoring.tar.gz /tmp/Scoring-System echo "代码更新完成"