From 7dc9fef7bbe2d416d3681499d5240667efb604ed Mon Sep 17 00:00:00 2001 From: AR Abdul Azeez Date: Thu, 30 Oct 2025 11:54:13 -0400 Subject: [PATCH 1/2] including detekt in the pipeline --- .github/workflows/ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a60756c3ad..f3409c2a1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Test +name: Build and Test SDK on: pull_request: @@ -23,6 +23,10 @@ jobs: working-directory: OneSignalSDK run: | ./gradlew spotlessCheck --console=plain + - name: "[Test] Detekt" + working-directory: OneSignalSDK + run: | + ./gradlew detekt --console=plain - name: "[Test] SDK Unit Tests" working-directory: OneSignalSDK run: | From 72b7d56854484a442bd819b72440e69b434d5bdc Mon Sep 17 00:00:00 2001 From: AR Abdul Azeez Date: Thu, 30 Oct 2025 12:13:57 -0400 Subject: [PATCH 2/2] aggregating the task on root level --- OneSignalSDK/build.gradle | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/OneSignalSDK/build.gradle b/OneSignalSDK/build.gradle index 005c0a580d..eb4f3966d6 100644 --- a/OneSignalSDK/build.gradle +++ b/OneSignalSDK/build.gradle @@ -9,6 +9,7 @@ buildscript { minSdkVersion: 21 ] androidGradlePluginVersion = '8.8.2' + detektVersion = '1.21.0' googleServicesGradlePluginVersion = '4.3.10' huaweiAgconnectVersion = '1.9.1.304' huaweiHMSPushVersion = '6.3.0.304' @@ -35,6 +36,7 @@ buildscript { "com.google.gms:google-services:$googleServicesGradlePluginVersion", "com.huawei.agconnect:agcp:$huaweiAgconnectVersion", "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion", + "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$detektVersion", "com.diffplug.spotless:spotless-plugin-gradle:$spotlessVersion", "com.vanniktech.maven.publish:com.vanniktech.maven.publish.gradle.plugin:0.32.0" ] @@ -77,3 +79,30 @@ allprojects { } } } + +// Aggregate Detekt tasks at the root so CI can call them once +gradle.projectsEvaluated { + def moduleDetektTasks = [] + def moduleDetektBaselineTasks = [] + + subprojects.each { p -> + if (p.plugins.hasPlugin('io.gitlab.arturbosch.detekt')) { + def detektTask = p.tasks.findByName('detekt') + if (detektTask != null) moduleDetektTasks << detektTask.path + def detektBaselineTask = p.tasks.findByName('detektBaseline') + if (detektBaselineTask != null) moduleDetektBaselineTasks << detektBaselineTask.path + } + } + + tasks.register('detekt') { + if (!moduleDetektTasks.isEmpty()) dependsOn moduleDetektTasks + group = 'verification' + description = 'Runs Detekt on all modules.' + } + + tasks.register('detektBaseline') { + if (!moduleDetektBaselineTasks.isEmpty()) dependsOn moduleDetektBaselineTasks + group = 'verification' + description = 'Creates/updates Detekt baselines for all modules.' + } +}