From 42f38a0fdc2f7d21becd5435604e4306010ab38b Mon Sep 17 00:00:00 2001 From: Iaroslav Postovalov Date: Wed, 21 Jul 2021 19:01:10 +0700 Subject: [PATCH] Fix dependencies of release task --- .../mipt/npm/gradle/KScienceProjectPlugin.kt | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt b/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt index c163c3d..70568f3 100644 --- a/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt +++ b/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt @@ -27,6 +27,12 @@ class KSciencePublishingExtension(val project: Project) { } } + private fun linkPublicationsToReleaseTask(name: String) = project.afterEvaluate { + allTasks() + .filter { it.name == "publish${publicationTarget}To${name.capitalize()}Repository" } + .forEach { releaseTask?.dependsOn(it) } + } + /** * github publishing * @param publish include github packages in release publishing. By default - false @@ -38,15 +44,7 @@ class KSciencePublishingExtension(val project: Project) { } project.addGithubPublishing(githubOrg, githubProject) - - if (publish) - project.afterEvaluate { - allTasks() - .find { it.name == "publish${publicationTarget}ToGithubRepository" } - ?.let { publicationTask -> - releaseTask?.dependsOn(publicationTask) - } - } + if (publish) linkPublicationsToReleaseTask("github") } private val releaseTask by lazy { @@ -60,12 +58,7 @@ class KSciencePublishingExtension(val project: Project) { require(initializedFlag) { "The project vcs is not set up use 'vcs' method to do so" } project.addSpacePublishing(spaceRepo) - if (publish) - project.afterEvaluate { - allTasks() - .find { it.name == "publish${publicationTarget}ToSpaceRepository" } - ?.let { publicationTask -> releaseTask?.dependsOn(publicationTask) } - } + if (publish) linkPublicationsToReleaseTask("space") } // // Bintray publishing @@ -81,12 +74,7 @@ class KSciencePublishingExtension(val project: Project) { require(initializedFlag) { "The project vcs is not set up use 'vcs' method to do so" } project.addSonatypePublishing() - if (publish) - project.afterEvaluate { - allTasks() - .find { it.name == "publish${publicationTarget}ToSonatypeRepository" } - ?.let { publicationTask -> releaseTask?.dependsOn(publicationTask) } - } + if (publish) linkPublicationsToReleaseTask("sonatype") } } -- 2.34.1