Skip to content

Commit e935282

Browse files
committed
minor
1 parent fcec36e commit e935282

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

bin/test-changed-exercise

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
#!/usr/bin/env bash
22
set -eo pipefail
33

4-
# Determine the base branch of the PR
4+
# Determine base branch (main for push, PR base for pull_request)
55
BASE_BRANCH=${GITHUB_BASE_REF:-main}
66

77
# Fetch full history for proper diff
88
git fetch origin "$BASE_BRANCH"
99

10-
# Compute merge base
10+
# Compute merge base to compare changes
1111
MERGE_BASE=$(git merge-base HEAD origin/$BASE_BRANCH)
1212

1313
# Get changed files relative to merge base
1414
changed_files=$(git diff --name-only "$MERGE_BASE" HEAD)
1515

16-
# Extract unique exercise directories
16+
# Extract unique exercise directories (practice/*/<slug> or concept/*/<slug>)
1717
changed_exercises=$(echo "$changed_files" | \
1818
grep -E '^exercises/(practice|concept)/[^/]+/.+\.(java|json|gradle)$' | \
1919
cut -d/ -f1-3 | sort -u)
@@ -23,19 +23,22 @@ if [ -z "$changed_exercises" ]; then
2323
exit 0
2424
fi
2525

26-
# Source original verify_exercise script
27-
source ./bin/test-with-test-runner
26+
echo "Changed exercises detected:"
27+
echo "$changed_exercises"
28+
echo
2829

29-
# Run verify_exercise for each changed exercise
30+
# Run tests for each changed exercise
31+
exit_code=0
3032
for dir in $changed_exercises; do
3133
slug=$(basename "$dir")
32-
if [[ $dir == exercises/practice/* ]]; then
33-
echo "Checking $slug (practice)..."
34-
verify_exercise "$dir" "example" "practice"
35-
elif [[ $dir == exercises/concept/* ]]; then
36-
echo "Checking $slug (concept)..."
37-
verify_exercise "$dir" "exemplar" "concept"
34+
echo "=== Running tests for $slug ==="
35+
36+
# Run Gradle test for this exercise
37+
if [[ -f "$dir/build.gradle" || -f "$dir/build.gradle.kts" ]]; then
38+
./gradlew --continue -p "$dir" test || exit_code=$?
39+
else
40+
echo "No build.gradle found for $slug, skipping..."
3841
fi
3942
done
4043

41-
exit ${exit_code:-0}
44+
exit $exit_code

0 commit comments

Comments
 (0)