diff --git a/buildSrc/src/main/kotlin/GradleCommon.kt b/buildSrc/src/main/kotlin/GradleCommon.kt index f645e332064..49b4f03b483 100644 --- a/buildSrc/src/main/kotlin/GradleCommon.kt +++ b/buildSrc/src/main/kotlin/GradleCommon.kt @@ -54,9 +54,11 @@ enum class GradlePluginVariant( /** * Configures common pom configuration parameters */ -fun Project.configureCommonPublicationSettingsForGradle() { +fun Project.configureCommonPublicationSettingsForGradle( + signingRequired: Boolean +) { plugins.withId("maven-publish") { - configureDefaultPublishing() + configureDefaultPublishing(signingRequired) extensions.configure { publications diff --git a/buildSrc/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts b/buildSrc/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts index 0cb555c4e12..f5d65975deb 100644 --- a/buildSrc/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts +++ b/buildSrc/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts @@ -3,6 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ import com.gradle.publish.PluginBundleExtension +import plugins.signLibraryPublication plugins { kotlin("jvm") @@ -12,7 +13,11 @@ plugins { id("com.gradle.plugin-publish") } -configureCommonPublicationSettingsForGradle() +// Enable signing for publications into Gradle Plugin Portal +val signPublication = !version.toString().contains("-SNAPSHOT") && + (project.gradle.startParameter.taskNames.contains("publishPlugins") || signLibraryPublication) + +configureCommonPublicationSettingsForGradle(signPublication) configureKotlinCompileTasksGradleCompatibility() extensions.extraProperties["kotlin.stdlib.default.dependency"] = "false" diff --git a/buildSrc/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts b/buildSrc/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts index d84a9295ab4..90fae9a67b4 100644 --- a/buildSrc/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts +++ b/buildSrc/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts @@ -4,6 +4,7 @@ */ import plugins.KotlinBuildPublishingPlugin.Companion.DEFAULT_MAIN_PUBLICATION_NAME +import plugins.signLibraryPublication plugins { `java-library` @@ -12,7 +13,7 @@ plugins { `maven-publish` } -configureCommonPublicationSettingsForGradle() +configureCommonPublicationSettingsForGradle(signLibraryPublication) configureKotlinCompileTasksGradleCompatibility() extensions.extraProperties["kotlin.stdlib.default.dependency"] = "false" diff --git a/buildSrc/src/main/kotlin/plugins/KotlinBuildPublishingPlugin.kt b/buildSrc/src/main/kotlin/plugins/KotlinBuildPublishingPlugin.kt index 1040e85c7c7..538a033f0ed 100644 --- a/buildSrc/src/main/kotlin/plugins/KotlinBuildPublishingPlugin.kt +++ b/buildSrc/src/main/kotlin/plugins/KotlinBuildPublishingPlugin.kt @@ -129,8 +129,14 @@ fun MavenPublication.configureKotlinPomAttributes(project: Project, explicitDesc } } +val Project.signLibraryPublication: Boolean + get() = project.providers.gradleProperty("signingRequired").forUseAtConfigurationTime().orNull?.toBoolean() + ?: project.providers.gradleProperty("isSonatypeRelease").forUseAtConfigurationTime().orNull?.toBoolean() + ?: false -fun Project.configureDefaultPublishing() { +fun Project.configureDefaultPublishing( + signingRequired: Boolean = signLibraryPublication +) { configure { repositories { maven { @@ -140,9 +146,6 @@ fun Project.configureDefaultPublishing() { } } - val signingRequired = project.providers.gradleProperty("signingRequired").forUseAtConfigurationTime().orNull?.toBoolean() - ?: project.providers.gradleProperty("isSonatypeRelease").forUseAtConfigurationTime().orNull?.toBoolean() ?: false - if (signingRequired) { apply() configureSigning() diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 6c54022a584..776e0756893 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1715,12 +1715,6 @@ - - - - - - @@ -9201,12 +9195,6 @@ - - - - - - diff --git a/libraries/examples/kotlin-gradle-subplugin-example/build.gradle b/libraries/examples/kotlin-gradle-subplugin-example/build.gradle index ec1f6c48ab3..3f41b5e5fdc 100644 --- a/libraries/examples/kotlin-gradle-subplugin-example/build.gradle +++ b/libraries/examples/kotlin-gradle-subplugin-example/build.gradle @@ -35,7 +35,7 @@ dependencies { compileOnly project(':dependencies:intellij-core') } -GradleCommonKt.configureCommonPublicationSettingsForGradle(project) +GradleCommonKt.configureCommonPublicationSettingsForGradle(project, false) GradleCommonKt.configureKotlinCompileTasksGradleCompatibility(project) GradleCommonKt.excludeGradleCommonDependencies(project, sourceSets.main) TasksKt.optInToExperimentalCompilerApi(project) diff --git a/plugins/atomicfu/atomicfu-runtime/build.gradle.kts b/plugins/atomicfu/atomicfu-runtime/build.gradle.kts index 7049ad62b02..58c6cf4185b 100644 --- a/plugins/atomicfu/atomicfu-runtime/build.gradle.kts +++ b/plugins/atomicfu/atomicfu-runtime/build.gradle.kts @@ -1,3 +1,5 @@ +import plugins.signLibraryPublication + description = "Runtime library for the Atomicfu compiler plugin" plugins { @@ -26,7 +28,7 @@ kotlin { } } -configureCommonPublicationSettingsForGradle() +configureCommonPublicationSettingsForGradle(signLibraryPublication) publishing { publications {