Skip to content

Commit 201d297

Browse files
committed
minor
1 parent 556188c commit 201d297

1 file changed

Lines changed: 23 additions & 23 deletions

File tree

bin/test-changed-exercise

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

4-
docker pull exercism/java-test-runner
5-
4+
# Determine the base branch of the PR
65
BASE_BRANCH=${GITHUB_BASE_REF:-main}
6+
7+
# Fetch full history for proper diff
78
git fetch origin "$BASE_BRANCH"
9+
10+
# Compute merge base
811
MERGE_BASE=$(git merge-base HEAD origin/$BASE_BRANCH)
12+
13+
# Get changed files relative to merge base
914
changed_files=$(git diff --name-only "$MERGE_BASE" HEAD)
1015

16+
# Extract unique exercise directories
1117
changed_exercises=$(echo "$changed_files" | \
1218
grep -E '^exercises/(practice|concept)/[^/]+/.+\.(java|json|gradle)$' | \
1319
cut -d/ -f1-3 | sort -u)
@@ -21,28 +27,22 @@ echo "Changed exercises detected:"
2127
echo "$changed_exercises"
2228
echo
2329

24-
exit_code=0
25-
26-
function run_test_runner() {
27-
local slug=$1
28-
local solution_dir=$2
29-
local output_dir=$3
30-
31-
docker run \
32-
--rm \
33-
--network none \
34-
--mount type=bind,src="${solution_dir}",dst=/solution \
35-
--mount type=bind,src="${output_dir}",dst=/output \
36-
--tmpfs /tmp:rw \
37-
exercism/java-test-runner "${slug}" "/solution" "/output"
38-
}
30+
# Root Gradle wrapper
31+
GRADLE_WRAPPER="./gradlew"
3932

33+
# Verify each changed exercise
4034
for dir in $changed_exercises; do
41-
slug=$(basename "$dir")
42-
output_dir="${dir}/build"
43-
mkdir -p "$output_dir"
44-
echo "=== Running tests for $slug ==="
45-
run_test_runner "$slug" "$dir" "$output_dir" || exit_code=1
35+
slug=$(basename "$dir")
36+
# Convert path to Gradle subproject notation: exercises:practice:allergies
37+
gradle_project=$(echo "$dir" | tr / :)
38+
39+
echo "=== Running tests for $slug ==="
40+
if [[ $dir == exercises/practice/* || $dir == exercises/concept/* ]]; then
41+
$GRADLE_WRAPPER ":$gradle_project:test"
42+
else
43+
echo "Skipping unknown directory: $dir"
44+
fi
45+
echo
4646
done
4747

48-
exit $exit_code
48+
echo "All changed exercises tested."

0 commit comments

Comments
 (0)