Skip to content

Commit dda2f29

Browse files
authored
[Feat][SDK- 538] Update android quality plugin (#349)
* build: use android quality plugin * refactor: use convention plugin * refactor: update convention plugin * refactor: Exclude Jacoco instrumentation for Android Tests --------- Co-authored-by: chris <[email protected]>
1 parent 05c320c commit dda2f29

File tree

4 files changed

+90
-85
lines changed

4 files changed

+90
-85
lines changed

build-logic/conventions/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ repositories {
1111

1212
dependencies {
1313
implementation("com.vanniktech:gradle-maven-publish-plugin:0.34.0")
14+
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:6.3.0")
1415
}
1516

1617
gradlePlugin {
@@ -19,5 +20,9 @@ gradlePlugin {
1920
id = "com.rollbar.conventions.release"
2021
implementationClass = "RollbarPublishPlugin"
2122
}
23+
register("androidQuality") {
24+
id = "com.rollbar.android.quality"
25+
implementationClass = "AndroidQualityPlugin"
26+
}
2227
}
2328
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import com.github.spotbugs.snom.Confidence
2+
import com.github.spotbugs.snom.Effort
3+
import com.github.spotbugs.snom.SpotBugsExtension
4+
import com.github.spotbugs.snom.SpotBugsTask
5+
import org.gradle.api.Plugin
6+
import org.gradle.api.Project
7+
import org.gradle.api.plugins.quality.Checkstyle
8+
import org.gradle.api.plugins.quality.CheckstyleExtension
9+
import org.gradle.testing.jacoco.plugins.JacocoPluginExtension
10+
import org.gradle.testing.jacoco.tasks.JacocoReport
11+
12+
class AndroidQualityPlugin : Plugin<Project> {
13+
override fun apply(project: Project) {
14+
with(project) {
15+
16+
pluginManager.apply("checkstyle")
17+
pluginManager.apply("com.github.spotbugs-base")
18+
pluginManager.apply("jacoco")
19+
20+
extensions.configure(CheckstyleExtension::class.java) {
21+
toolVersion = "8.2"
22+
configFile = rootProject.file("tools/checkstyle/google_checks.xml")
23+
}
24+
25+
tasks.register("checkstyleMain", Checkstyle::class.java) {
26+
source = fileTree("src/main/java")
27+
include("**/*.java")
28+
exclude("**/gen/**", "**/*Test.java", "**/annotation/*.java")
29+
classpath = files()
30+
reports {
31+
xml.required.set(false)
32+
html.required.set(true)
33+
}
34+
isIgnoreFailures = true
35+
}
36+
37+
extensions.configure(SpotBugsExtension::class.java) {
38+
toolVersion.set("6.3.0")
39+
includeFilter.set(rootProject.file("tools/findbugs/findbugs.xml"))
40+
}
41+
42+
tasks.register("spotbugsMain", SpotBugsTask::class.java) {
43+
dependsOn(tasks.matching { it.name.startsWith("assemble") })
44+
45+
ignoreFailures = true
46+
effort.set(Effort.MAX)
47+
reportLevel.set(Confidence.MEDIUM)
48+
49+
classes = fileTree("build/intermediates/javac/debug/classes/")
50+
sourceDirs.from(fileTree("src/main/java"))
51+
auxClassPaths.from(files())
52+
53+
projectName.set(project.name)
54+
release.set(project.version.toString())
55+
56+
reports.create("html") {
57+
required.set(true)
58+
outputLocation.set(layout.buildDirectory.file("reports/spotbugs/main/spotbugs.html"))
59+
setStylesheet("fancy-hist.xsl")
60+
}
61+
}
62+
63+
extensions.configure(JacocoPluginExtension::class.java) {
64+
toolVersion = "0.8.6"
65+
}
66+
67+
tasks.register("jacocoTestReport", JacocoReport::class.java) {
68+
dependsOn("test")
69+
70+
reports {
71+
xml.required.set(false)
72+
csv.required.set(false)
73+
html.required.set(true)
74+
html.outputLocation.set(layout.buildDirectory.dir("jacocoHtml"))
75+
}
76+
}
77+
78+
tasks.named("check") {
79+
dependsOn("checkstyleMain", "spotbugsMain")
80+
}
81+
}
82+
}
83+
}

gradle/android.quality.gradle

Lines changed: 0 additions & 82 deletions
This file was deleted.

rollbar-android/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
plugins {
22
id("com.android.library")
3+
id("com.rollbar.android.quality")
34
}
45

5-
//apply(from = "$rootDir/gradle/android.quality.gradle") TODO: use the plugin
6-
76
android {
87
namespace = "com.rollbar.android"
98
compileSdk = 33
@@ -22,7 +21,7 @@ android {
2221
}
2322
getByName("debug") {
2423
enableUnitTestCoverage = true
25-
enableAndroidTestCoverage = true
24+
enableAndroidTestCoverage = false
2625
}
2726
}
2827

0 commit comments

Comments
 (0)