Skip to content

Commit e9c9bd4

Browse files
committed
Make CIJobsExtensions lazy
1 parent a031cb4 commit e9c9bd4

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

buildSrc/src/main/kotlin/CIJobsExtensions.kt

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,23 @@ private fun Project.createRootTask(
4343
excludePrefixes: List<String>,
4444
forceCoverage: Boolean
4545
) {
46-
val coverage = forceCoverage || rootProject.hasProperty("checkCoverage")
46+
val coverage = forceCoverage || rootProject.providers.gradleProperty("checkCoverage").isPresent
4747
tasks.register(rootTaskName) {
4848
subprojects.forEach { subproject ->
4949
val activePartition = subproject.extra.get("activePartition") as Boolean
5050
if (activePartition &&
5151
includePrefixes.any { subproject.path.startsWith(it) } &&
5252
!excludePrefixes.any { subproject.path.startsWith(it) }) {
5353

54-
val testTask = subproject.tasks.findByName(subProjTaskName)
55-
var isAffected = true
56-
57-
if (testTask != null) {
54+
if (subProjTaskName in subproject.tasks.names) {
55+
val testTaskProvider = subproject.tasks.named(subProjTaskName)
56+
var isAffected = true
57+
5858
val useGitChanges = rootProject.extra.get("useGitChanges") as Boolean
5959
if (useGitChanges) {
6060
@Suppress("UNCHECKED_CAST")
6161
val affectedProjects = rootProject.extra.get("affectedProjects") as Map<Project, Set<String>>
62-
val fileTrigger = isAffectedBy(testTask, affectedProjects)
62+
val fileTrigger = isAffectedBy(testTaskProvider.get(), affectedProjects)
6363
if (fileTrigger != null) {
6464
logger.warn("Selecting ${subproject.path}:$subProjTaskName (triggered by $fileTrigger)")
6565
} else {
@@ -68,18 +68,16 @@ private fun Project.createRootTask(
6868
}
6969
}
7070
if (isAffected) {
71-
dependsOn(testTask)
72-
}
73-
}
74-
75-
if (isAffected && coverage) {
76-
val coverageTask = subproject.tasks.findByName("jacocoTestReport")
77-
if (coverageTask != null) {
78-
dependsOn(coverageTask)
71+
dependsOn(testTaskProvider)
7972
}
80-
val verificationTask = subproject.tasks.findByName("jacocoTestCoverageVerification")
81-
if (verificationTask != null) {
82-
dependsOn(verificationTask)
73+
74+
if (isAffected && coverage) {
75+
if ("jacocoTestReport" in subproject.tasks.names) {
76+
dependsOn(subproject.tasks.named("jacocoTestReport"))
77+
}
78+
if ("jacocoTestCoverageVerification" in subproject.tasks.names) {
79+
dependsOn(subproject.tasks.named("jacocoTestCoverageVerification"))
80+
}
8381
}
8482
}
8583
}

0 commit comments

Comments
 (0)