fix: require pre-initialized git repo, use fetch+reset
All checks were successful
Deploy to Server / deploy (push) Successful in 9s

This commit is contained in:
爽哒哒
2026-03-21 02:54:24 +08:00
parent be8a2caf14
commit 9775717e45

View File

@@ -26,33 +26,17 @@ jobs:
echo -e "\n===== 停止并清理 Docker =====" echo -e "\n===== 停止并清理 Docker ====="
echo $SUDO_PASSWORD | sudo -S docker compose down echo $SUDO_PASSWORD | sudo -S docker compose down
# 3. 拉取最新代码(通过 gitea API 下载压缩包) # 3. 拉取最新代码
echo -e "\n===== 拉取最新代码 =====" echo -e "\n===== 拉取最新代码 ====="
ARCHIVE_URL="https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System/archive/main.tar.gz" REPO_URL="https://sdd:zsj981107@gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git"
AUTH_HEADER="Authorization: Basic $(echo -n 'sdd:zsj981107' | base64)" if [ ! -d ".git" ]; then
rm -f /tmp/scoring.tar.gz echo "错误:目录不是 git 仓库,请先手动执行:"
DOWNLOAD_OK=false echo " cd $TARGET_DIR && git clone $REPO_URL ."
for i in 1 2 3; do
echo "第 $i 次尝试下载代码包..."
wget --header="$AUTH_HEADER" -O /tmp/scoring.tar.gz "$ARCHIVE_URL" 2>&1 || true
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 [ "$DOWNLOAD_OK" != "true" ]; then
echo "错误:代码下载失败,终止部署"
exit 1 exit 1
fi fi
echo "解压代码..." git remote set-url origin $REPO_URL
tar -xzf /tmp/scoring.tar.gz -C /tmp/ git fetch origin main
rsync -av --exclude='.env' --exclude='media/' /tmp/Scoring-System/ $TARGET_DIR/ git reset --hard origin/main
rm -rf /tmp/scoring.tar.gz /tmp/Scoring-System
echo "代码更新完成" echo "代码更新完成"
# 4. 创建/更新 .env 文件 # 4. 创建/更新 .env 文件