summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2021-11-14 12:10:38 +0530
committerHarsh Shandilya <me@msfjarvis.dev>2021-11-16 00:22:17 +0530
commitcfeca2d3ee149f72d3af18844a78f76aaa9fa790 (patch)
treebef115871e4ab3816966a9d1683966f8c7a0c532
parent44f28217946c28d75ac2feaeeb1bec49f045e0d4 (diff)
build-logic: add Kotlin convention plugins
-rw-r--r--build-logic/kotlin-plugins/build.gradle.kts2
-rw-r--r--build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.binary-compatibility.gradle.kts11
-rw-r--r--build-logic/kotlin-plugins/src/main/kotlin/com.github.android-password-store.kotlin-common.gradle.kts27
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")
+}