Skip to content

Commit

Permalink
workaround issues with the signing setup
Browse files Browse the repository at this point in the history
  • Loading branch information
gabrielittner committed Sep 4, 2022
1 parent c143338 commit add6142
Showing 1 changed file with 18 additions and 6 deletions.
Expand Up @@ -4,13 +4,16 @@ import com.vanniktech.maven.publish.sonatype.CloseAndReleaseSonatypeRepositoryTa
import com.vanniktech.maven.publish.sonatype.CreateSonatypeRepositoryTask.Companion.registerCreateRepository
import com.vanniktech.maven.publish.sonatype.SonatypeRepositoryBuildService.Companion.registerSonatypeRepositoryBuildService
import java.util.concurrent.Callable
import org.codehaus.groovy.runtime.StringGroovyMethods
import org.gradle.api.Action
import org.gradle.api.Incubating
import org.gradle.api.Project
import org.gradle.api.credentials.PasswordCredentials
import org.gradle.api.provider.Property
import org.gradle.api.publish.maven.MavenPom
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
import org.gradle.build.event.BuildEventsListenerRegistry
import org.gradle.configurationcache.extensions.serviceOf
import org.gradle.plugins.signing.SigningPlugin
Expand Down Expand Up @@ -69,11 +72,9 @@ abstract class MavenPublishBaseExtension(
repo.credentials(PasswordCredentials::class.java)
}

project.gradlePublishing.publications.withType(MavenPublication::class.java).all { publication ->
project.afterEvaluate {
project.tasks.named("publish${publication.name.capitalize()}PublicationToMavenCentralRepository") {
it.dependsOn(createRepository)
}
project.tasks.withType(PublishToMavenRepository::class.java).configureEach { publishTask ->
if (publishTask.name.endsWith("ToMavenCentralRepository")) {
publishTask.dependsOn(createRepository)
}
}

Expand Down Expand Up @@ -114,14 +115,25 @@ abstract class MavenPublishBaseExtension(

project.plugins.apply(SigningPlugin::class.java)
project.gradleSigning.setRequired(Callable { !project.versionIsSnapshot })
project.gradleSigning.sign(project.gradlePublishing.publications)

val inMemoryKey = project.findOptionalProperty("signingInMemoryKey")
if (inMemoryKey != null) {
val inMemoryKeyId = project.findOptionalProperty("signingInMemoryKeyId")
val inMemoryKeyPassword = project.findOptionalProperty("signingInMemoryKeyPassword") ?: ""
project.gradleSigning.useInMemoryPgpKeys(inMemoryKeyId, inMemoryKey, inMemoryKeyPassword)
}

// TODO: replace with the following line after https://github.com/gradle/gradle/issues/21857 is fixed
// project.gradleSigning.sign(project.gradlePublishing.publications)
project.gradlePublishing.publications.withType(MavenPublication::class.java).all { publication ->
project.tasks.findByName("sign${publication.name.capitalize()}Publication")
project.gradleSigning.sign(publication)
}

// TODO: remove after https://youtrack.jetbrains.com/issue/KT-46466 is fixed
project.tasks.withType(AbstractPublishToMaven::class.java) { publishTask ->
publishTask.dependsOn(project.tasks.withType(org.gradle.plugins.signing.Sign::class.java))
}
}

/**
Expand Down

0 comments on commit add6142

Please sign in to comment.