diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index a966405ee..ad374a4f0 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -55,7 +55,7 @@ jobs: if: failure() test-changed: - name: Test changed exercises using java-test-runner + name: Test changed exercises using gradlew if: github.event_name == 'pull_request' runs-on: ubuntu-24.04 steps: diff --git a/bin/test-changed-exercise b/bin/test-changed-exercise index 776e940e1..debefeba3 100755 --- a/bin/test-changed-exercise +++ b/bin/test-changed-exercise @@ -13,9 +13,16 @@ MERGE_BASE=$(git merge-base HEAD origin/"$BASE_BRANCH") # Get changed files relative to merge base changed_files=$(git diff --name-only "$MERGE_BASE" HEAD) +# If any Gradle build file changed, run the full suite and exit +if echo "$changed_files" | grep -qE '\.(gradle|gradlew|bat)$|settings\.gradle'; then + echo "Gradle build files changed, running full test suite..." + ./bin/test-with-test-runner + exit 0 +fi + # Extract unique exercise directories changed_exercises=$(echo "$changed_files" | \ - grep -E '^exercises/(practice|concept)/[^/]+/.+\.(java|gradle)$' | \ + grep -E '^exercises/(practice|concept)/[^/]+/.+\.java$' | \ cut -d/ -f1-3 | sort -u) if [ -z "$changed_exercises" ]; then