Skip to content

Commit 9b7d98d

Browse files
committed
Add check for if project is provided before adding dependent task
1 parent 33a6511 commit 9b7d98d

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ abstract class AffectedModuleDetector {
107107

108108
companion object {
109109
private const val ROOT_PROP_NAME = "AffectedModuleDetectorPlugin"
110-
internal const val MODULES_ARG = "affected_module_detector.modules"
110+
private const val MODULES_ARG = "affected_module_detector.modules"
111111
private const val DEPENDENT_PROJECTS_ARG = "affected_module_detector.dependentProjects"
112112
private const val CHANGED_PROJECTS_ARG = "affected_module_detector.changedProjects"
113113
private const val ENABLE_ARG = "affected_module_detector.enable"
@@ -119,7 +119,7 @@ abstract class AffectedModuleDetector {
119119
"Project provided must be root, project was ${rootProject.path}"
120120
}
121121

122-
val enabled = rootProject.hasProperty(ENABLE_ARG)
122+
val enabled = getEnabledProperty(rootProject)
123123
if (!enabled) {
124124
setInstance(
125125
rootProject,
@@ -216,6 +216,10 @@ abstract class AffectedModuleDetector {
216216
)
217217
}
218218

219+
private fun isProjectEnabled(project: Project): Boolean {
220+
return project.hasProperty(ENABLE_ARG)
221+
}
222+
219223
private fun getModulesProperty(project: Project): Set<String>? {
220224
return if (project.hasProperty(MODULES_ARG)) {
221225
val commaDelimited = project.properties[MODULES_ARG] as String
@@ -273,9 +277,12 @@ abstract class AffectedModuleDetector {
273277
*/
274278
@JvmStatic
275279
fun isProjectProvided(project: Project): Boolean {
276-
return getOrThrow(
277-
project
278-
).isProjectProvided2(project)
280+
if (!isProjectEnabled(project)) {
281+
// if we do not want to use affected module detector property then assume every project is provided
282+
return true
283+
}
284+
val modules = getModulesProperty(project)
285+
return modules?.contains(project.path) ?: true
279286
}
280287
}
281288
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ class AffectedModuleDetectorPlugin : Plugin<Project> {
9292
private fun withPlugin(pluginId: String, task: Task, testType: TestType, project: Project) {
9393
project.pluginManager.withPlugin(pluginId) {
9494
getAffectedPath(testType, project)?.let { path ->
95-
task.dependsOn(path)
95+
if (AffectedModuleDetector.isProjectProvided(project)) {
96+
task.dependsOn(path)
97+
}
9698
project.afterEvaluate {
9799
project.tasks.findByPath(path)?.onlyIf {
98100
AffectedModuleDetector.isProjectAffected(project)

0 commit comments

Comments
 (0)