🐛 继续修复测试
Hello from ImmortalWrt / say-hello (push) Successful in 0s
Details
Hello from ImmortalWrt / say-hello (push) Successful in 0s
Details
This commit is contained in:
parent
b616573bfd
commit
23a7fb5a28
|
|
@ -1,4 +1,4 @@
|
|||
name: Update Stats Badege
|
||||
name: 📊 代码统计徽章
|
||||
|
||||
on:
|
||||
push:
|
||||
|
|
@ -117,25 +117,52 @@ jobs:
|
|||
echo "🌿 分支: ${{ github.ref_name }}"
|
||||
echo ""
|
||||
|
||||
# 检查仓库是否已存在
|
||||
if [ -d "$REPO_DIR/.git" ]; then
|
||||
echo "✓ 仓库已存在,更新中..."
|
||||
cd "$REPO_DIR"
|
||||
# 检查仓库状态
|
||||
if [ -d "$REPO_DIR" ]; then
|
||||
echo "📂 目录已存在,检查 Git 仓库状态..."
|
||||
|
||||
# 清理工作区
|
||||
git clean -fdx
|
||||
git reset --hard
|
||||
if [ -d "$REPO_DIR/.git" ]; then
|
||||
# 目录存在且是有效的 Git 仓库
|
||||
echo "✓ 发现有效的 Git 仓库,执行增量更新..."
|
||||
cd "$REPO_DIR"
|
||||
|
||||
# 获取最新代码
|
||||
echo "📥 拉取最新代码..."
|
||||
git fetch --all --tags --force
|
||||
# 清理工作区
|
||||
git clean -fdx
|
||||
git reset --hard
|
||||
|
||||
echo "✓ 仓库已更新"
|
||||
# 获取最新代码
|
||||
echo "📥 拉取最新代码..."
|
||||
git fetch --all --tags --force
|
||||
|
||||
echo "✓ 仓库已更新"
|
||||
else
|
||||
# 目录存在但不是 Git 仓库(可能之前运行失败)
|
||||
echo "⚠️ 目录存在但不是有效的 Git 仓库"
|
||||
echo "🧹 清理损坏的目录..."
|
||||
rm -rf "$REPO_DIR"
|
||||
echo "✓ 已清理"
|
||||
|
||||
# 重新克隆
|
||||
echo "📥 克隆仓库..."
|
||||
mkdir -p "${{ env.WORKSPACE_DIR }}"
|
||||
|
||||
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 "📥 克隆仓库..."
|
||||
# 目录不存在,首次克隆
|
||||
echo "📥 克隆仓库(首次)..."
|
||||
mkdir -p "${{ env.WORKSPACE_DIR }}"
|
||||
|
||||
# 克隆仓库(完整克隆,不使用 --depth)
|
||||
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'
|
||||
|
|
|
|||
Loading…
Reference in New Issue