From 2dee87d4ed4d4745dca321788b34298a461d57b6 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 9 Dec 2025 15:32:25 +0000 Subject: [PATCH] fix(quality-checks): enhance frontend change detection with fallback mechanisms --- .github/workflows/quality-checks.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/quality-checks.yml b/.github/workflows/quality-checks.yml index 83c1ca55..c2d98376 100644 --- a/.github/workflows/quality-checks.yml +++ b/.github/workflows/quality-checks.yml @@ -100,9 +100,26 @@ jobs: echo "frontend_changed=true" >> $GITHUB_OUTPUT exit 0 fi + # Try to fetch the PR base ref. This may fail for forked PRs or other cases. git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1 || true - CHANGED=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD || true) - echo "Changed files:\n$CHANGED" + + # Compute changed files against the PR base ref, fallback to origin/main, then fallback to last 10 commits + CHANGED=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD 2>/dev/null || echo "") + echo "Changed files (base ref):\n$CHANGED" + + if [ -z "$CHANGED" ]; then + echo "Base ref diff empty or failed; fetching origin/main for fallback..." + git fetch origin main --depth=1 || true + CHANGED=$(git diff --name-only origin/main...HEAD 2>/dev/null || echo "") + echo "Changed files (main fallback):\n$CHANGED" + fi + + if [ -z "$CHANGED" ]; then + echo "Still empty; falling back to diffing last 10 commits from HEAD..." + CHANGED=$(git diff --name-only HEAD~10...HEAD 2>/dev/null || echo "") + echo "Changed files (HEAD~10 fallback):\n$CHANGED" + fi + if echo "$CHANGED" | grep -q '^frontend/'; then echo "frontend_changed=true" >> $GITHUB_OUTPUT else