diff --git a/build-logic/kotlin-plugins/build.gradle.kts b/build-logic/kotlin-plugins/build.gradle.kts index f41eec8e..41155408 100644 --- a/build-logic/kotlin-plugins/build.gradle.kts +++ b/build-logic/kotlin-plugins/build.gradle.kts @@ -51,6 +51,7 @@ gradlePlugin { dependencies { implementation(libs.build.agp) + implementation(libs.build.detekt) implementation(libs.build.kotlin.gradle) implementation(libs.build.kotlin.serialization) implementation(libs.build.spotless) diff --git a/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/KotlinCommonPlugin.kt b/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/KotlinCommonPlugin.kt index f7033b72..4fabd8db 100644 --- a/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/KotlinCommonPlugin.kt +++ b/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/KotlinCommonPlugin.kt @@ -5,20 +5,38 @@ package dev.msfjarvis.aps.gradle +import io.gitlab.arturbosch.detekt.DetektPlugin +import io.gitlab.arturbosch.detekt.extensions.DetektExtension import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.testing.Test import org.gradle.api.tasks.testing.logging.TestLogEvent +import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.withType +import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @Suppress("Unused") class KotlinCommonPlugin : Plugin { override fun apply(project: Project) { + project.pluginManager.apply(DetektPlugin::class.java) + project.extensions.configure { + parallel = true + ignoredBuildTypes = listOf("benchmark", "release") + basePath = project.layout.projectDirectory.toString() + baseline = + project.rootProject.layout.projectDirectory + .dir("detekt-baselines") + .file("${project.name}.xml") + .asFile + } project.tasks.run { + project.pluginManager.withPlugin("base") { + named(LifecycleBasePlugin.CHECK_TASK_NAME).configure { this.dependsOn(named("detekt")) } + } withType().configureEach { sourceCompatibility = JavaVersion.VERSION_11.toString() targetCompatibility = JavaVersion.VERSION_11.toString() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bba29c02..ad0f5ddb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -49,6 +49,7 @@ androidx-test-uiautomator = "androidx.test.uiautomator:uiautomator:2.3.0-alpha01 androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workmanager" } build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } build-cachefix = "org.gradle.android.cache-fix:org.gradle.android.cache-fix.gradle.plugin:2.5.7" +build-detekt = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.21.0" build-kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } build-kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" } build-semver = "com.vdurmont:semver4j:3.1.0" @@ -87,5 +88,5 @@ testparameterinjector = "com.google.testparameterinjector:test-parameter-injecto [plugins] android-test = { id = "com.android.test", version.ref = "agp" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "dagger" } -sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } napt = { id = "com.sergei-lapin.napt", version = "1.17" } +sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }