Skip to content

Commit 125da89

Browse files
abdulraqeeb33AR Abdul Azeez
andauthored
ci: including detekt in the pipeline (#2402)
* including detekt in the pipeline * aggregating the task on root level --------- Co-authored-by: AR Abdul Azeez <abdul@onesignal.com>
1 parent 27e5fc7 commit 125da89

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Test
1+
name: Build and Test SDK
22

33
on:
44
pull_request:
@@ -23,6 +23,10 @@ jobs:
2323
working-directory: OneSignalSDK
2424
run: |
2525
./gradlew spotlessCheck --console=plain
26+
- name: "[Test] Detekt"
27+
working-directory: OneSignalSDK
28+
run: |
29+
./gradlew detekt --console=plain
2630
- name: "[Test] SDK Unit Tests"
2731
working-directory: OneSignalSDK
2832
run: |

OneSignalSDK/build.gradle

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -81,26 +81,29 @@ allprojects {
8181
}
8282
}
8383

84-
subprojects {
85-
plugins.withId("io.gitlab.arturbosch.detekt") {
86-
afterEvaluate {
87-
def configureDetektTask = { task ->
88-
// Only analyze main source sets
89-
task.source = files(
90-
"$projectDir/src/main/java",
91-
"$projectDir/src/main/kotlin"
92-
)
93-
// Exclude all test-related files and directories
94-
task.exclude "**/test/**", "**/androidTest/**", "**/src/test/**", "**/src/androidTest/**",
95-
"**/*Test.kt", "**/*Tests.kt", "**/*Spec.kt",
96-
"**/*Test.java", "**/*Tests.java", "**/*Spec.java"
84+
// Aggregate Detekt tasks at the root so CI can call them once
85+
gradle.projectsEvaluated {
86+
def moduleDetektTasks = []
87+
def moduleDetektBaselineTasks = []
9788

98-
// Enable type resolution to catch !! operator
99-
task.jvmTarget = "1.8"
100-
}
101-
102-
tasks.withType(io.gitlab.arturbosch.detekt.Detekt).configureEach(configureDetektTask)
103-
tasks.withType(io.gitlab.arturbosch.detekt.DetektCreateBaselineTask).configureEach(configureDetektTask)
89+
subprojects.each { p ->
90+
if (p.plugins.hasPlugin('io.gitlab.arturbosch.detekt')) {
91+
def detektTask = p.tasks.findByName('detekt')
92+
if (detektTask != null) moduleDetektTasks << detektTask.path
93+
def detektBaselineTask = p.tasks.findByName('detektBaseline')
94+
if (detektBaselineTask != null) moduleDetektBaselineTasks << detektBaselineTask.path
10495
}
10596
}
97+
98+
tasks.register('detekt') {
99+
if (!moduleDetektTasks.isEmpty()) dependsOn moduleDetektTasks
100+
group = 'verification'
101+
description = 'Runs Detekt on all modules.'
102+
}
103+
104+
tasks.register('detektBaseline') {
105+
if (!moduleDetektBaselineTasks.isEmpty()) dependsOn moduleDetektBaselineTasks
106+
group = 'verification'
107+
description = 'Creates/updates Detekt baselines for all modules.'
108+
}
106109
}

0 commit comments

Comments
 (0)