Skip to content

Commit d76e538

Browse files
authored
Make publish... tasks depend on sign... tasks (#503)
All `publish...` tasks share Javadoc artifact (until we set up proper Javadoc generation), so this PR makes all of them dependent. Closes #502
1 parent f284ba6 commit d76e538

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

buildSrc/src/main/kotlin/com/saveourtool/save/buildutils/PublishingConfiguration.kt

+14-5
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ import org.gradle.api.publish.PublishingExtension
1111
import org.gradle.api.publish.maven.MavenPublication
1212
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
1313
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven
14+
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
1415
import org.gradle.api.tasks.bundling.Jar
1516
import org.gradle.kotlin.dsl.apply
1617
import org.gradle.kotlin.dsl.configure
17-
import org.gradle.kotlin.dsl.create
1818
import org.gradle.kotlin.dsl.extra
1919
import org.gradle.kotlin.dsl.getByType
20+
import org.gradle.kotlin.dsl.register
2021
import org.gradle.kotlin.dsl.withType
2122
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
23+
import org.gradle.plugins.signing.Sign
2224
import org.gradle.plugins.signing.SigningExtension
2325
import org.gradle.plugins.signing.SigningPlugin
2426

@@ -83,9 +85,9 @@ fun Project.configurePublishing() {
8385
}
8486
}
8587

86-
@Suppress("TOO_LONG_FUNCTION")
88+
@Suppress("TOO_LONG_FUNCTION", "GENERIC_VARIABLE_WRONG_DECLARATION")
8789
private fun Project.configurePublications() {
88-
val dokkaJar: Jar = tasks.create<Jar>("dokkaJar") {
90+
val dokkaJarProvider = tasks.register<Jar>("dokkaJar") {
8991
group = "documentation"
9092
archiveClassifier.set("javadoc")
9193
from(tasks.findByName("dokkaHtml"))
@@ -95,7 +97,7 @@ private fun Project.configurePublications() {
9597
mavenLocal()
9698
}
9799
publications.withType<MavenPublication>().forEach { publication ->
98-
publication.artifact(dokkaJar)
100+
publication.artifact(dokkaJarProvider)
99101
publication.pom {
100102
name.set(project.name)
101103
description.set(project.description ?: project.name)
@@ -111,7 +113,7 @@ private fun Project.configurePublications() {
111113
developer {
112114
id.set("petertrr")
113115
name.set("Petr Trifanov")
114-
email.set("peter.trifanov@mail.ru")
116+
email.set("peter.trifanov@gmail.com")
115117
}
116118
developer {
117119
id.set("akuleshov7")
@@ -134,6 +136,13 @@ private fun Project.configureSigning() {
134136
logger.lifecycle("The following publications are getting signed: ${extensions.getByType<PublishingExtension>().publications.map { it.name }}")
135137
sign(*extensions.getByType<PublishingExtension>().publications.toTypedArray())
136138
}
139+
140+
tasks.withType<PublishToMavenRepository>().configureEach {
141+
// Workaround for the problem described at https://github.com/saveourtool/save-cli/pull/501#issuecomment-1439705340.
142+
// We have a single Javadoc artifact shared by all platforms, hence all publications depend on signing of this artifact.
143+
// This causes weird implicit dependencies, like `publishJsPublication...` depends on `signJvmPublication`.
144+
dependsOn(tasks.withType<Sign>())
145+
}
137146
}
138147

139148
private fun Project.configureNexusPublishing() {

0 commit comments

Comments
 (0)