Run the matrix tests from the jars The step passed -Dmaven.test.classpath.useTestJar=true, which is not a surefire parameter, so surefire ignored it, found no test classes and reported "Tests run: 0, BUILD SUCCESS". Put the main and test jars on the test classpath instead, and fail the job if no tests run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
diff --git a/.github/workflows/reusable-jdk-os-matrix.yml b/.github/workflows/reusable-jdk-os-matrix.yml index 2acfa9b..143fcec 100644 --- a/.github/workflows/reusable-jdk-os-matrix.yml +++ b/.github/workflows/reusable-jdk-os-matrix.yml
@@ -74,8 +74,15 @@ JAVA_EXE="$JAVA_HOME/bin/java" fi echo "Testing datasketches-java jars for JDK version ${{ inputs.jdk_version }}..." + # Surefire needs these directories to exist, but the classes come from the jars. + mkdir -p target/classes target/test-classes + MAIN_JAR=$(ls target/datasketches-java-*.jar | grep -v -E -e '-(tests|sources|test-sources|javadoc)\.jar$') + TEST_JAR=$(ls target/datasketches-java-*-tests.jar) + echo "Main jar: $MAIN_JAR" + echo "Test jar: $TEST_JAR" mvn surefire:test -B \ - -Dmaven.test.classpath.useTestJar=true \ + -Dmaven.test.additionalClasspath="$MAIN_JAR,$TEST_JAR" \ + -DfailIfNoTests=true \ -Djvm="$JAVA_EXE" \ -DargLine="${{ env.JVM_ARGS }}"