feat(build): add a task to collect Lint SARIF reports

This commit is contained in:
Harsh Shandilya 2023-04-20 17:25:40 +05:30
parent 24b747eb38
commit 1323668fe6
No known key found for this signature in database
2 changed files with 29 additions and 0 deletions

View file

@ -21,6 +21,11 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
class KotlinCommonPlugin : Plugin<Project> {
override fun apply(project: Project) {
if (project.rootProject == project) {
LintConfig.configureRootProject(project)
} else if (project.name != "benchmark") {
LintConfig.configureSubProject(project)
}
project.tasks.run {
withType<JavaCompile>().configureEach {
sourceCompatibility = JavaVersion.VERSION_11.toString()

View file

@ -8,6 +8,9 @@ package dev.msfjarvis.claw.gradle
import com.android.build.api.dsl.Lint
import org.gradle.api.Project
import org.gradle.api.tasks.Copy
import org.gradle.kotlin.dsl.named
import org.gradle.kotlin.dsl.register
object LintConfig {
fun Lint.configureLint(project: Project, isJVM: Boolean = false) {
@ -30,4 +33,25 @@ object LintConfig {
}
baseline = project.file("lint-baseline.xml")
}
fun configureRootProject(project: Project) {
project.tasks.register<Copy>("collectLintReports") {
into(project.layout.buildDirectory.dir("lint-reports"))
}
}
fun configureSubProject(project: Project) {
val collectorTask = project.rootProject.tasks.named<Copy>("collectLintReports")
val lintTask = project.tasks.named("lint")
val name = project.name
collectorTask.configure {
from(project.layout.buildDirectory.file("reports")) {
include("*.sarif")
rename { it.replace("-results", "-results-$name") }
}
dependsOn(":$name:lint")
}
lintTask.configure { finalizedBy(collectorTask) }
}
}