Skip to content

Commit fd521da

Browse files
committed
Ensure aggregate test fails
1 parent 85ac4c8 commit fd521da

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

buildSrc/src/main/kotlin/datadog/gradle/plugin/ci/CIJobsExtensions.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package datadog.gradle.plugin.ci
22

3+
import org.gradle.api.GradleException
34
import org.gradle.api.Project
45
import org.gradle.api.Task
6+
import org.gradle.api.tasks.testing.Test
57
import org.gradle.kotlin.dsl.extra
68

79
/**
@@ -45,6 +47,8 @@ private fun Project.createRootTask(
4547
) {
4648
val coverage = forceCoverage || rootProject.providers.gradleProperty("checkCoverage").isPresent
4749
tasks.register(rootTaskName) {
50+
val includedTestTasks = mutableListOf<Test>()
51+
4852
subprojects.forEach { subproject ->
4953
val activePartition = subproject.extra.get("activePartition") as Boolean
5054
if (
@@ -70,6 +74,9 @@ private fun Project.createRootTask(
7074
}
7175
if (isAffected) {
7276
dependsOn(testTask)
77+
if (testTask is Test) {
78+
includedTestTasks.add(testTask)
79+
}
7380
}
7481
}
7582

@@ -85,6 +92,16 @@ private fun Project.createRootTask(
8592
}
8693
}
8794
}
95+
96+
doLast {
97+
val failedTests = includedTestTasks.filter { testTask ->
98+
testTask.state.failure != null
99+
}
100+
if (failedTests.isNotEmpty()) {
101+
val failedTaskPaths = failedTests.map { "${it.project.path}:${it.name}" }
102+
throw GradleException("Tests failed in: ${failedTaskPaths.joinToString(", ")}")
103+
}
104+
}
88105
}
89106
}
90107

0 commit comments

Comments
 (0)