From cfeca2d3ee149f72d3af18844a78f76aaa9fa790 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 14 Nov 2021 12:10:38 +0530 Subject: build-logic: add Kotlin convention plugins --- build-logic/kotlin-plugins/build.gradle.kts | 2 ++ ...-password-store.binary-compatibility.gradle.kts | 11 +++++++++ ...android-password-store.kotlin-common.gradle.kts | 27 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.binary-compatibility.gradle.kts create mode 100644 build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.kotlin-common.gradle.kts (limited to 'build-logic/kotlin-plugins') diff --git a/build-logic/kotlin-plugins/build.gradle.kts b/build-logic/kotlin-plugins/build.gradle.kts index f8fbca41..d097688e 100644 --- a/build-logic/kotlin-plugins/build.gradle.kts +++ b/build-logic/kotlin-plugins/build.gradle.kts @@ -1,5 +1,7 @@ plugins { `kotlin-dsl` } dependencies { + implementation(libs.build.binarycompat) + implementation(libs.build.kotlin) implementation(libs.build.spotless) } diff --git a/build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.binary-compatibility.gradle.kts b/build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.binary-compatibility.gradle.kts new file mode 100644 index 00000000..053a69ab --- /dev/null +++ b/build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.binary-compatibility.gradle.kts @@ -0,0 +1,11 @@ +/* + * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +import kotlinx.validation.ApiValidationExtension +import org.gradle.kotlin.dsl.configure + +plugins { id("org.jetbrains.kotlinx.binary-compatibility-validator") } + +extensions.configure { ignoredProjects = mutableSetOf("app") } diff --git a/build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.kotlin-common.gradle.kts b/build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.kotlin-common.gradle.kts new file mode 100644 index 00000000..71a68d9c --- /dev/null +++ b/build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.kotlin-common.gradle.kts @@ -0,0 +1,27 @@ +/* + * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +import org.gradle.api.JavaVersion +import org.gradle.api.tasks.testing.Test +import org.gradle.api.tasks.testing.logging.TestLogEvent +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +val additionalCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn") + +tasks.withType().configureEach { + kotlinOptions { + allWarningsAsErrors = true + jvmTarget = JavaVersion.VERSION_11.toString() + freeCompilerArgs = freeCompilerArgs + additionalCompilerArgs + languageVersion = "1.5" + } +} + +tasks.withType().configureEach { + maxParallelForks = Runtime.getRuntime().availableProcessors() * 2 + testLogging { events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) } + doNotTrackState("We want tests to always run even if Gradle thinks otherwise") +} -- cgit v1.2.3