@@ -45,43 +45,47 @@ private fun Project.createRootTask(
4545) {
4646 val coverage = forceCoverage || rootProject.providers.gradleProperty(" checkCoverage" ).isPresent
4747 tasks.register(rootTaskName) {
48- subprojects.forEach { subproject ->
49- val activePartition = subproject.extra.get(" activePartition" ) as Boolean
50- if (activePartition &&
51- includePrefixes.any { subproject.path.startsWith(it) } &&
52- ! excludePrefixes.any { subproject.path.startsWith(it) }) {
53-
54- if (subProjTaskName in subproject.tasks.names) {
55- val testTaskProvider = subproject.tasks.named(subProjTaskName)
56- var isAffected = true
48+ dependsOn(project.provider {
49+ val dependencies = mutableListOf<Any >()
50+ subprojects.forEach { subproject ->
51+ val activePartition = subproject.extra.get(" activePartition" ) as Boolean
52+ if (activePartition &&
53+ includePrefixes.any { subproject.path.startsWith(it) } &&
54+ ! excludePrefixes.any { subproject.path.startsWith(it) }) {
5755
58- val useGitChanges = rootProject.extra.get(" useGitChanges" ) as Boolean
59- if (useGitChanges) {
60- @Suppress(" UNCHECKED_CAST" )
61- val affectedProjects = rootProject.extra.get(" affectedProjects" ) as Map <Project , Set <String >>
62- val fileTrigger = isAffectedBy(testTaskProvider.get(), affectedProjects)
63- if (fileTrigger != null ) {
64- logger.warn(" Selecting ${subproject.path} :$subProjTaskName (triggered by $fileTrigger )" )
65- } else {
66- logger.warn(" Skipping ${subproject.path} :$subProjTaskName (not affected by changed files)" )
67- isAffected = false
56+ if (subProjTaskName in subproject.tasks.names) {
57+ val testTaskProvider = subproject.tasks.named(subProjTaskName)
58+ var isAffected = true
59+
60+ val useGitChanges = rootProject.extra.get(" useGitChanges" ) as Boolean
61+ if (useGitChanges) {
62+ @Suppress(" UNCHECKED_CAST" )
63+ val affectedProjects = rootProject.extra.get(" affectedProjects" ) as Map <Project , Set <String >>
64+ val fileTrigger = isAffectedBy(testTaskProvider.get(), affectedProjects)
65+ if (fileTrigger != null ) {
66+ logger.warn(" Selecting ${subproject.path} :$subProjTaskName (triggered by $fileTrigger )" )
67+ } else {
68+ logger.warn(" Skipping ${subproject.path} :$subProjTaskName (not affected by changed files)" )
69+ isAffected = false
70+ }
6871 }
69- }
70- if (isAffected) {
71- dependsOn(testTaskProvider)
72- }
73-
74- if (isAffected && coverage) {
75- if (" jacocoTestReport" in subproject.tasks.names) {
76- dependsOn(subproject.tasks.named(" jacocoTestReport" ))
72+ if (isAffected) {
73+ dependencies.add(testTaskProvider)
7774 }
78- if (" jacocoTestCoverageVerification" in subproject.tasks.names) {
79- dependsOn(subproject.tasks.named(" jacocoTestCoverageVerification" ))
75+
76+ if (isAffected && coverage) {
77+ if (" jacocoTestReport" in subproject.tasks.names) {
78+ dependencies.add(subproject.tasks.named(" jacocoTestReport" ))
79+ }
80+ if (" jacocoTestCoverageVerification" in subproject.tasks.names) {
81+ dependencies.add(subproject.tasks.named(" jacocoTestCoverageVerification" ))
82+ }
8083 }
8184 }
8285 }
8386 }
84- }
87+ dependencies
88+ })
8589 }
8690}
8791
0 commit comments