From afd0eebdd3287d932c53879fa1ac88f430080ef5 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 2 Dec 2022 01:57:02 +0530 Subject: refactor(build-logic): move all code to a single top-level project --- .../gradle/PublishedAndroidLibraryPlugin.kt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt (limited to 'build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt') diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt new file mode 100644 index 00000000..542bfeb6 --- /dev/null +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt @@ -0,0 +1,47 @@ +@file:Suppress("UnstableApiUsage") + +package app.passwordstore.gradle + +import com.vanniktech.maven.publish.MavenPublishBaseExtension +import com.vanniktech.maven.publish.MavenPublishPlugin +import com.vanniktech.maven.publish.SonatypeHost +import me.tylerbwong.gradle.metalava.Documentation +import me.tylerbwong.gradle.metalava.extension.MetalavaExtension +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.apply +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.provideDelegate +import org.gradle.plugins.signing.SigningExtension +import org.gradle.plugins.signing.SigningPlugin + +@Suppress("Unused") +class PublishedAndroidLibraryPlugin : Plugin { + + override fun apply(project: Project) { + project.plugins.run { + apply(LibraryPlugin::class) + apply(MavenPublishPlugin::class) + apply(SigningPlugin::class) + apply("me.tylerbwong.gradle.metalava") + } + project.extensions.getByType().run { + publishToMavenCentral(SonatypeHost.DEFAULT, true) + signAllPublications() + } + project.afterEvaluate { + project.extensions.getByType().run { + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKey, signingPassword) + } + } + project.extensions.getByType().run { + documentation.set(Documentation.PUBLIC) + inputKotlinNulls.set(true) + outputKotlinNulls.set(true) + reportLintsAsErrors.set(true) + reportWarningsAsErrors.set(true) + } + } +} -- cgit v1.2.3