diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2021-11-14 12:10:38 +0530 |
---|---|---|
committer | Harsh Shandilya <me@msfjarvis.dev> | 2021-11-16 00:22:17 +0530 |
commit | cfeca2d3ee149f72d3af18844a78f76aaa9fa790 (patch) | |
tree | bef115871e4ab3816966a9d1683966f8c7a0c532 /build-logic | |
parent | 44f28217946c28d75ac2feaeeb1bec49f045e0d4 (diff) |
build-logic: add Kotlin convention plugins
Diffstat (limited to 'build-logic')
3 files changed, 40 insertions, 0 deletions
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<ApiValidationExtension> { 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<KotlinCompile>().configureEach { + kotlinOptions { + allWarningsAsErrors = true + jvmTarget = JavaVersion.VERSION_11.toString() + freeCompilerArgs = freeCompilerArgs + additionalCompilerArgs + languageVersion = "1.5" + } +} + +tasks.withType<Test>().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") +} |