diff --git a/CHANGES.md b/CHANGES.md index 6bff393..0f427ac 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ - Dependencies (extras): Remove "ngr", add "notebook", link "test" to "testing" - ngr: Gradle test runner failed to invoke `./gradlew install` because such a target did not exist. +- ngr: Fix Gradle test runner by only conditionally invoking `gradle wrapper` ## 2023-11-06 v0.0.3 - ngr: Fix `contextlib.chdir` only available on Python 3.11 and newer diff --git a/pueblo/ngr/runner.py b/pueblo/ngr/runner.py index c5dc58c..17b96be 100644 --- a/pueblo/ngr/runner.py +++ b/pueblo/ngr/runner.py @@ -235,7 +235,7 @@ def install(self) -> None: if self.has_pom_xml: run_command("mvn install") elif self.has_gradle_files: - if shutil.which("gradle"): + if not (self.path / "gradlew").exists(): run_command("gradle wrapper") else: raise NotImplementedError("Unable to invoke target: install") @@ -249,7 +249,7 @@ def test(self) -> None: elif self.has_pom_xml: run_command("mvn test") elif self.has_gradle_files: - run_command("./gradlew check") + run_command("./gradlew check --info") else: raise NotImplementedError("Unable to invoke target: test") diff --git a/tests/ngr/java-gradle/.gitignore b/tests/ngr/java-gradle-nowrapper/.gitignore similarity index 100% rename from tests/ngr/java-gradle/.gitignore rename to tests/ngr/java-gradle-nowrapper/.gitignore diff --git a/tests/ngr/java-gradle/build.gradle b/tests/ngr/java-gradle-nowrapper/build.gradle similarity index 100% rename from tests/ngr/java-gradle/build.gradle rename to tests/ngr/java-gradle-nowrapper/build.gradle diff --git a/tests/ngr/java-gradle-wrapper/.gitignore b/tests/ngr/java-gradle-wrapper/.gitignore new file mode 100644 index 0000000..12eb6a9 --- /dev/null +++ b/tests/ngr/java-gradle-wrapper/.gitignore @@ -0,0 +1,2 @@ +/.gradle +/build diff --git a/tests/ngr/java-gradle-wrapper/build.gradle b/tests/ngr/java-gradle-wrapper/build.gradle new file mode 100644 index 0000000..da238cb --- /dev/null +++ b/tests/ngr/java-gradle-wrapper/build.gradle @@ -0,0 +1,43 @@ +/** + * Test project for `pueblo.ngr`. + */ + +buildscript { + repositories { + mavenCentral() + } +} + +plugins { + id 'application' + id 'java' +} + +repositories { + mavenCentral() + mavenLocal() +} + +dependencies { + testImplementation 'junit:junit:4.13.2' +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} + +jar { + archiveBaseName = 'pyveci-ngr-testdrive' + archiveVersion = '0.0.1-SNAPSHOT' +} + +application { +} + +check { +} + +processResources.destinationDir = compileJava.destinationDir +compileJava.dependsOn processResources diff --git a/tests/ngr/java-gradle-wrapper/gradle/wrapper/gradle-wrapper.jar b/tests/ngr/java-gradle-wrapper/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..249e583 Binary files /dev/null and b/tests/ngr/java-gradle-wrapper/gradle/wrapper/gradle-wrapper.jar differ diff --git a/tests/ngr/java-gradle-wrapper/gradle/wrapper/gradle-wrapper.properties b/tests/ngr/java-gradle-wrapper/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..070cb70 --- /dev/null +++ b/tests/ngr/java-gradle-wrapper/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/tests/ngr/java-gradle/gradlew b/tests/ngr/java-gradle-wrapper/gradlew similarity index 100% rename from tests/ngr/java-gradle/gradlew rename to tests/ngr/java-gradle-wrapper/gradlew