Skip to content

Commit ce3420d

Browse files
committed
Set up dependOn task only if project is affected
1 parent d3b8a1f commit ce3420d

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

affectedmoduledetector/src/main/kotlin/com/dropbox/affectedmoduledetector/AffectedModuleDetectorPlugin.kt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ class AffectedModuleDetectorPlugin : Plugin<Project> {
159159

160160
private fun withPlugin(
161161
pluginId: String,
162-
task: Task,
162+
taskToConfigure: Task,
163163
testType: AffectedModuleTaskType,
164164
project: Project
165165
) {
@@ -171,16 +171,18 @@ class AffectedModuleDetectorPlugin : Plugin<Project> {
171171

172172
project.pluginManager.withPlugin(pluginId) {
173173
getAffectedPath(testType, project)?.let { path ->
174-
val pathOrNull = project.tasks.findByPath(path)
175-
if (AffectedModuleDetector.isProjectProvided(project) && !isExcludedModule(config, path) && pathOrNull != null) {
176-
task.dependsOn(path)
177-
}
178-
179-
pathOrNull?.onlyIf { task ->
180-
when {
181-
!AffectedModuleDetector.isProjectEnabled(task.project) -> true
182-
else -> AffectedModuleDetector.isProjectAffected(task.project)
183-
}
174+
project
175+
.tasks
176+
.findByPath(path)
177+
?.onlyIf { task ->
178+
when {
179+
!AffectedModuleDetector.isProjectEnabled(task.project) -> true
180+
else -> AffectedModuleDetector.isProjectAffected(task.project)
181+
}.also { onlyIf ->
182+
if (onlyIf && AffectedModuleDetector.isProjectProvided(project) && !isExcludedModule(config, path)) {
183+
taskToConfigure.dependsOn(path)
184+
}
185+
}
184186
}
185187
}
186188
}

affectedmoduledetector/src/test/kotlin/com/dropbox/affectedmoduledetector/AffectedModuleDetectorIntegrationTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ class AffectedModuleDetectorIntegrationTest {
111111
.build()
112112

113113
// THEN
114-
assertThat(result.output).contains(":sample-app:assembleDebugAndroidTest SKIPPED")
115-
assertThat(result.output).contains(":sample-core:assembleAndroidTest SKIPPED")
114+
assertThat(result.output).doesNotContain(":sample-app:assembleDebugAndroidTest SKIPPED")
115+
assertThat(result.output).doesNotContain(":sample-core:assembleAndroidTest SKIPPED")
116116
assertThat(result.output).contains(":assembleAffectedAndroidTests SKIPPED")
117117
}
118118

@@ -189,8 +189,8 @@ class AffectedModuleDetectorIntegrationTest {
189189
.build()
190190

191191
// THEN
192-
assertThat(result.output).contains(":sample-app:assembleDebugAndroidTest SKIPPED")
192+
assertThat(result.output).doesNotContain(":sample-app:assembleDebugAndroidTest SKIPPED")
193193
assertThat(result.output).doesNotContain(":sample-core:assembleAndroidTest SKIPPED")
194194
assertThat(result.output).contains(":assembleAffectedAndroidTests SKIPPED")
195195
}
196-
}
196+
}

0 commit comments

Comments
 (0)