From 9070d7489a7dbe3f8776ac090b2d5ce04898a668 Mon Sep 17 00:00:00 2001 From: chengyongru Date: Tue, 28 Jul 2026 19:15:39 +0800 Subject: [PATCH] fix(ci): scope PR path detection to head changes --- .github/workflows/ci.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9b6e49beb..526219705 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,13 +33,20 @@ jobs: id: paths shell: bash env: + EVENT_NAME: ${{ github.event_name }} BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }} - HEAD_SHA: ${{ github.sha }} + HEAD_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} run: | python_required=true + if [[ "$EVENT_NAME" == "pull_request" ]]; then + diff_range="${BASE_SHA}...${HEAD_SHA}" + else + diff_range="${BASE_SHA}..${HEAD_SHA}" + fi + if git cat-file -e "${BASE_SHA}^{commit}" 2>/dev/null && - changed_files="$(git diff --name-only --no-renames "$BASE_SHA" "$HEAD_SHA")" && + changed_files="$(git diff --name-only --no-renames "$diff_range")" && [[ -n "$changed_files" ]] && ! grep -qvE '^(webui/|nanobot/channels/[^/]+/webui/|docs/)' <<< "$changed_files"; then python_required=false