From 4f2d41c85d8435e5a07a2b791a4e59e812e0370f Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Thu, 20 Mar 2025 09:39:54 -0500 Subject: [PATCH] Fix merge-base calculation for change determination --- .github/workflows/linux.yml | 6 ++++-- .github/workflows/macos.yml | 6 +++++- .github/workflows/windows.yml | 7 ++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 8222d77d..c0c21bd0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -171,13 +171,15 @@ jobs: - name: Check if the `pythonbuild` crate changed id: check-pythonbuild + env: + BASE_REF: ${{ github.event.pull_request.base.ref || 'main' }} run: | - if git diff --quiet ${{ github.event.pull_request.base.sha || 'origin/main' }}...HEAD -- ':src/*.rs'; then + merge_base=$(git merge-base HEAD "origin/${BASE_REF}") + if git diff --quiet "${merge_base}...HEAD" -- ':src/*.rs'; then echo "changed=false" >> "$GITHUB_OUTPUT" else echo "changed=true" >> "$GITHUB_OUTPUT" fi - build-0: needs: diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 2b5841e7..af9a80f0 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -81,12 +81,16 @@ jobs: - name: Check if the `pythonbuild` crate changed id: check-pythonbuild + env: + BASE_REF: ${{ github.event.pull_request.base.ref || 'main' }} run: | - if git diff --quiet ${{ github.event.pull_request.base.sha || 'origin/main' }}...HEAD -- ':src/*.rs'; then + merge_base=$(git merge-base HEAD "origin/${BASE_REF}") + if git diff --quiet "${merge_base}...HEAD" -- ':src/*.rs'; then echo "changed=false" >> "$GITHUB_OUTPUT" else echo "changed=true" >> "$GITHUB_OUTPUT" fi + build: needs: - generate-matrix diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 11434bb2..a7535c68 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -79,12 +79,13 @@ jobs: echo "any_builds=false" >> $GITHUB_OUTPUT fi - - name: Check if the `pythonbuild` crate changed id: check-pythonbuild - shell: bash + env: + BASE_REF: ${{ github.event.pull_request.base.ref || 'main' }} run: | - if git diff --quiet ${{ github.event.pull_request.base.sha || 'origin/main' }}...HEAD -- ':src/*.rs'; then + merge_base=$(git merge-base HEAD "origin/${BASE_REF}") + if git diff --quiet "${merge_base}...HEAD" -- ':src/*.rs'; then echo "changed=false" >> "$GITHUB_OUTPUT" else echo "changed=true" >> "$GITHUB_OUTPUT"