🐛 继续修复测试
Hello from ImmortalWrt / say-hello (push) Successful in 0s Details

This commit is contained in:
csh 2025-11-02 21:13:51 +08:00
parent b616573bfd
commit 23a7fb5a28
1 changed files with 79 additions and 18 deletions

View File

@ -1,4 +1,4 @@
name: Update Stats Badege
name: 📊 代码统计徽章
on:
push:
@ -117,9 +117,13 @@ jobs:
echo "🌿 分支: ${{ github.ref_name }}"
echo ""
# 检查仓库是否已存在
# 检查仓库状态
if [ -d "$REPO_DIR" ]; then
echo "📂 目录已存在,检查 Git 仓库状态..."
if [ -d "$REPO_DIR/.git" ]; then
echo "✓ 仓库已存在,更新中..."
# 目录存在且是有效的 Git 仓库
echo "✓ 发现有效的 Git 仓库,执行增量更新..."
cd "$REPO_DIR"
# 清理工作区
@ -132,10 +136,33 @@ jobs:
echo "✓ 仓库已更新"
else
# 目录存在但不是 Git 仓库(可能之前运行失败)
echo "⚠️ 目录存在但不是有效的 Git 仓库"
echo "🧹 清理损坏的目录..."
rm -rf "$REPO_DIR"
echo "✓ 已清理"
# 重新克隆
echo "📥 克隆仓库..."
mkdir -p "${{ env.WORKSPACE_DIR }}"
# 克隆仓库(完整克隆,不使用 --depth
git clone \
https://oauth2:${{ env.ACCESS_TOKEN }}@${GITHUB_SERVER_URL#https://}/${{ github.repository }}.git \
"$REPO_DIR"
if [ $? -ne 0 ]; then
echo "❌ 克隆失败"
exit 1
fi
cd "$REPO_DIR"
echo "✓ 仓库已克隆"
fi
else
# 目录不存在,首次克隆
echo "📥 克隆仓库(首次)..."
mkdir -p "${{ env.WORKSPACE_DIR }}"
git clone \
https://oauth2:${{ env.ACCESS_TOKEN }}@${GITHUB_SERVER_URL#https://}/${{ github.repository }}.git \
"$REPO_DIR"
@ -220,10 +247,26 @@ jobs:
cd "${{ env.REPO_DIR }}"
# 🔴 安全检查:确认在正确的目录
echo "🔍 当前目录: $(pwd)"
echo "🔍 .git 状态: $([ -d .git ] && echo '✓ 存在' || echo '✗ 不存在')"
if [ ! -d .git ]; then
echo "❌ 错误:.git 目录不存在,无法创建分支"
exit 1
fi
# 创建孤立分支orphan branch
# 📝 说明:孤立分支与主分支没有共同的提交历史,适合存储独立的数据
echo "🌱 创建孤立分支..."
git checkout --orphan ${{ env.BADGE_BRANCH }}
# 🔴 再次确认 .git 仍然存在
if [ ! -d .git ]; then
echo "❌ 严重错误:.git 目录丢失!"
exit 1
fi
# 🧹 清空所有文件(但保留 .git 目录)
# ❓ 为什么要删除?
# - stats 分支是独立的数据存储分支,不需要主分支的代码文件
@ -234,10 +277,28 @@ jobs:
# - 可以!.git 目录包含所有分支的完整信息
# - 切换到主分支时,主分支的文件会恢复
# - 各分支独立,互不影响
echo "🧹 清理文件(保护 .git 和 .gitea..."
# 步骤 1: 使用 git rm 清理已跟踪的文件
git rm -rf . 2>/dev/null || true
# 安全地删除剩余文件(排除 .git 和 .gitea
find . -maxdepth 1 ! -name '.' ! -name '..' ! -name '.git' ! -name '.gitea' -exec rm -rf {} + 2>/dev/null || true
# 步骤 2: 安全地删除剩余文件
# 使用更严格的保护,确保不会误删 .git
echo "🔍 查找需要删除的文件..."
find . -maxdepth 1 -type f ! -name '.gitignore' -delete 2>/dev/null || true
find . -maxdepth 1 -type d ! -name '.' ! -name '..' ! -name '.git' ! -name '.gitea' -exec rm -rf {} + 2>/dev/null || true
# 🔴 最终检查:确认 .git 仍然完好
echo "🔍 最终检查..."
if [ ! -d .git ]; then
echo "❌ 致命错误:.git 目录在清理过程中被删除!"
echo "这不应该发生,请检查 find 命令"
exit 1
fi
echo "✓ .git 目录完好"
echo "✓ 文件清理完成"
echo ""
# 创建初始 README
cat > README.md << 'EOF'