From 66ce35927ab4d1be5f3a7d5f7a5732bf0d1c14ca Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 19 Apr 2023 16:40:32 +0530 Subject: [PATCH] refactor(build): extract out Lint config --- .../claw/gradle/AndroidCommonPlugin.kt | 25 ++------------- .../dev/msfjarvis/claw/gradle/LintConfig.kt | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/LintConfig.kt diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt index 13bf0430..a8fab3c2 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt @@ -10,10 +10,10 @@ package dev.msfjarvis.claw.gradle import com.android.build.api.dsl.ApplicationExtension import com.android.build.api.dsl.LibraryExtension -import com.android.build.api.dsl.Lint import com.android.build.api.variant.ApplicationAndroidComponentsExtension import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.android.build.gradle.BaseExtension +import dev.msfjarvis.claw.gradle.LintConfig.configureLint import org.gradle.android.AndroidCacheFixPlugin import org.gradle.api.JavaVersion import org.gradle.api.Plugin @@ -61,33 +61,14 @@ class AndroidCommonPlugin : Plugin { unitTests.isReturnDefaultValues = true } } - project.extensions.findByType()?.run { lint.configureLint(project) } - project.extensions.findByType()?.run { lint.configureLint(project) } + project.extensions.findByType()?.lint?.configureLint(project) + project.extensions.findByType()?.lint?.configureLint(project) val catalog = project.extensions.getByType() val libs = catalog.named("libs") project.dependencies.addProvider("lintChecks", libs.findLibrary("slack-compose-lints").get()) } } -private fun Lint.configureLint(project: Project) { - quiet = project.providers.environmentVariable("CI").isPresent - abortOnError = true - checkReleaseBuilds = true - warningsAsErrors = true - ignoreWarnings = false - checkAllWarnings = true - noLines = false - showAll = true - explainIssues = true - textReport = false - xmlReport = false - htmlReport = true - sarifReport = true - enable += "ComposeM2Api" - error += "ComposeM2Api" - baseline = project.file("lint-baseline.xml") -} - private fun Project.configureSlimTests() { // Disable unit test tasks on the release build type for Android Library projects extensions.findByType()?.run { diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/LintConfig.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/LintConfig.kt new file mode 100644 index 00000000..03fc51df --- /dev/null +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/LintConfig.kt @@ -0,0 +1,31 @@ +/* + * Copyright © 2023 Harsh Shandilya. + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + */ +package dev.msfjarvis.claw.gradle + +import com.android.build.api.dsl.Lint +import org.gradle.api.Project + +object LintConfig { + fun Lint.configureLint(project: Project) { + quiet = project.providers.environmentVariable("CI").isPresent + abortOnError = true + checkReleaseBuilds = true + warningsAsErrors = true + ignoreWarnings = false + checkAllWarnings = true + noLines = false + showAll = true + explainIssues = true + textReport = false + xmlReport = false + htmlReport = true + sarifReport = true + enable += "ComposeM2Api" + error += "ComposeM2Api" + baseline = project.file("lint-baseline.xml") + } +}