Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ abstract class AffectedModuleDetector {

companion object {
private const val ROOT_PROP_NAME = "AffectedModuleDetectorPlugin"
internal const val MODULES_ARG = "affected_module_detector.modules"
private const val MODULES_ARG = "affected_module_detector.modules"
private const val DEPENDENT_PROJECTS_ARG = "affected_module_detector.dependentProjects"
private const val CHANGED_PROJECTS_ARG = "affected_module_detector.changedProjects"
private const val ENABLE_ARG = "affected_module_detector.enable"
Expand All @@ -119,7 +119,7 @@ abstract class AffectedModuleDetector {
"Project provided must be root, project was ${rootProject.path}"
}

val enabled = rootProject.hasProperty(ENABLE_ARG)
val enabled = isProjectEnabled(rootProject)
if (!enabled) {
setInstance(
rootProject,
Expand Down Expand Up @@ -216,6 +216,10 @@ abstract class AffectedModuleDetector {
)
}

private fun isProjectEnabled(project: Project): Boolean {
return project.hasProperty(ENABLE_ARG)
}

private fun getModulesProperty(project: Project): Set<String>? {
return if (project.hasProperty(MODULES_ARG)) {
val commaDelimited = project.properties[MODULES_ARG] as String
Expand Down Expand Up @@ -273,9 +277,13 @@ abstract class AffectedModuleDetector {
*/
@JvmStatic
fun isProjectProvided(project: Project): Boolean {
return getOrThrow(
project
).isProjectProvided2(project)
val rootProject = project.rootProject
if (!isProjectEnabled(rootProject)) {
// if we do not want to use affected module detector property then assume every project is provided
return true
}
val modules = getModulesProperty(rootProject)
return modules?.contains(project.path) ?: true
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,9 @@ class AffectedModuleDetectorPlugin : Plugin<Project> {
private fun withPlugin(pluginId: String, task: Task, testType: TestType, project: Project) {
project.pluginManager.withPlugin(pluginId) {
getAffectedPath(testType, project)?.let { path ->
task.dependsOn(path)
if (AffectedModuleDetector.isProjectProvided(project)) {
task.dependsOn(path)
}
project.afterEvaluate {
project.tasks.findByPath(path)?.onlyIf {
AffectedModuleDetector.isProjectAffected(project)
Expand Down