diff --git a/src/compatTest/groovy/org/ajoberstar/gradle/git/publish/BaseCompatTest.groovy b/src/compatTest/groovy/org/ajoberstar/gradle/git/publish/BaseCompatTest.groovy index 3a8e18d..b3fa211 100644 --- a/src/compatTest/groovy/org/ajoberstar/gradle/git/publish/BaseCompatTest.groovy +++ b/src/compatTest/groovy/org/ajoberstar/gradle/git/publish/BaseCompatTest.groovy @@ -7,6 +7,7 @@ import org.ajoberstar.grgit.Grgit import org.gradle.testkit.runner.GradleRunner import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.TaskOutcome +import org.gradle.testkit.runner.UnexpectedBuildFailure import org.junit.Rule import org.junit.rules.TemporaryFolder @@ -239,14 +240,32 @@ gitPublish { working.branch.list()*.name == ['gh-pages'] } + def 'when no git publish tasks are run, build completes successfully'() { + given: + buildFile << '''\ +plugins { + id 'org.ajoberstar.git-publish' +} + +task hello { + doLast { + println 'Hello!' + } +} +''' + when: + build('hello') + then: + notThrown(UnexpectedBuildFailure) + } - private BuildResult build() { + private BuildResult build(String... args = ['gitPublishPush', '--stacktrace']) { return GradleRunner.create() .withGradleVersion(System.properties['compat.gradle.version']) .withPluginClasspath() .withProjectDir(projectDir) .forwardOutput() - .withArguments('gitPublishPush', '--stacktrace') + .withArguments(args) .build() } diff --git a/src/main/java/org/ajoberstar/gradle/git/publish/GitPublishPlugin.java b/src/main/java/org/ajoberstar/gradle/git/publish/GitPublishPlugin.java index 271d6d0..ca34f69 100644 --- a/src/main/java/org/ajoberstar/gradle/git/publish/GitPublishPlugin.java +++ b/src/main/java/org/ajoberstar/gradle/git/publish/GitPublishPlugin.java @@ -46,7 +46,9 @@ public void apply(Project project) { // always close the repo at the end of the build project.getGradle().buildFinished(result -> { project.getLogger().info("Closing Git publish repo: {}", extension.getRepoDir().get()); - reset.getGrgit().get().close(); + if (reset.getGrgit().isPresent()) { + reset.getGrgit().get().close(); + } }); }