From 1c97f2081879819ebf0675cf7e08107040ab89a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E4=BA=91?= Date: Fri, 16 May 2025 18:25:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=85=8D=E7=BD=AE=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/jsonDataValidation.yml | 44 +++++++++++++++++++++-- build/validate.py | Bin 22533 -> 38112 bytes 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.github/workflows/jsonDataValidation.yml b/.github/workflows/jsonDataValidation.yml index dc030a2c..bd0fbff3 100644 --- a/.github/workflows/jsonDataValidation.yml +++ b/.github/workflows/jsonDataValidation.yml @@ -62,11 +62,35 @@ jobs: mkdir -p build fi - - name: Setup Git and checkout branch + - name: Setup Git and repositories run: | git config --global user.name "GitHub Actions Bot" git config --global user.email "actions@github.com" + # 确保远程仓库设置正确 + echo "当前远程仓库配置:" + git remote -v + + # 设置上游仓库(upstream)和origin + UPSTREAM_REPO="https://github.com/${{ github.repository }}.git" + ORIGIN_REPO="https://github.com/${{ github.event.pull_request.head.repo.full_name || github.repository }}.git" + + echo "设置upstream指向主仓库: $UPSTREAM_REPO" + git remote remove upstream 2>/dev/null || true + git remote add upstream $UPSTREAM_REPO + + echo "确保origin指向正确的仓库: $ORIGIN_REPO" + git remote set-url origin $ORIGIN_REPO 2>/dev/null || git remote add origin $ORIGIN_REPO + + # 获取最新的主仓库和分支 + echo "获取远程分支信息" + git fetch upstream + git fetch origin + + # 显示远程仓库配置 + echo "更新后的远程仓库配置:" + git remote -v + # 检查是否处于PR环境 if [ -n "${{ github.event.pull_request.head.ref }}" ]; then echo "检测到PR,切换到PR分支: ${{ github.event.pull_request.head.ref }}" @@ -79,6 +103,19 @@ jobs: git checkout -b temp-validation-branch fi + - name: Prepare validation script + run: | + git show upstream/main:build/validate.py > build/validate.py 2>/dev/null + + # 检查文件是否成功获取并且非空 + if [ ! -s "build/validate.py" ]; then + echo "无法从上游仓库获取validate.py文件,终止流程" + exit 1 + else + echo "成功获取validate.py" + fi + + - name: Get PR information if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.pr_number != '' }} id: pr_info @@ -118,8 +155,9 @@ jobs: id: changed_files if: github.event_name == 'pull_request_target' run: | - CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | grep -E '^repo/pathing/.*\.json$' || true) - echo "Changed JSON files in repo/pathing:" + # 使用upstream/main作为比较基准 + CHANGED_FILES=$(git diff --name-only upstream/main HEAD | grep -E '^repo/pathing/.*\.json$' || true) + echo "Changed JSON files in repo/pathing compared to upstream/main:" echo "$CHANGED_FILES" echo "changed_files=$CHANGED_FILES" >> $GITHUB_OUTPUT diff --git a/build/validate.py b/build/validate.py index 8a18b93c5c601ecb7de634803fb0ee775380c773..e7a10bd6bb31509e20c3dc26b2d4de98902c1ee0 100644 GIT binary patch literal 38112 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 literal 22533 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