Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
9 changes: 8 additions & 1 deletion bin/test-changed-exercise
Original file line number Diff line number Diff line change
Expand Up @@ -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)

# 🔹 NEW: 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..."
./exercises/gradlew -p exercises test
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
Expand Down