Conversation
… local publishing - Wrap signAllPublications() in an if-check verifying whether signing.keyId or signing.secretKeyRingFile is configured, preventing local ./gradlew publishToMavenLocal builds from failing with missing .asc signature errors when GPG credentials are omitted. - Keep full publication signing active whenever GPG credentials are provided on CI or release pipelines.
54a5cf2 to
396aad6
Compare
Code Coverage
|
|
Thanks for this @dkhawk, and sorry it sat open so long. The underlying problem was real, but it has since been fixed on
publishToMavenCentral()
if (findProperty("signing.keyId")?.toString()?.isNotBlank() == true ||
findProperty("signing.secretKeyRingFile")?.toString()?.isNotBlank() == true ||
findProperty("signingInMemoryKey")?.toString()?.isNotBlank() == true
) {
signAllPublications()
}So Two reasons I'd keep the version on
One idea from here worth keeping though: val signingProps = listOf("signing.keyId", "signing.secretKeyRingFile", "signingInMemoryKey")
if (signingProps.any { providers.gradleProperty(it).getOrElse("").isNotBlank() }) {
signAllPublications()
}Closing as already fixed. |
What this PR does
When developers run
./gradlew publishToMavenLocalon their local machines without configuring GPG signing credentials (signing.keyId,signing.secretKeyRingFile), the build fails with:This occurred because
signAllPublications()inPublishingConventionPlugin.ktwas invoked unconditionally.This PR wraps
signAllPublications()so that it only signs whensigning.keyIdorsigning.secretKeyRingFileis present and non-empty:Verification
./gradlew publishToMavenLocalacross all modules: BUILD SUCCESSFUL without.ascsignature errors.~/.m2/repository/com/google/maps/android/.