Register BuildReportsService as task completion listener

This will trigger service instantiation on configuration cache reuse
even when all tasks are up-to-date.

^KT-27301 In Progress
This commit is contained in:
Yahor Berdnikau
2022-09-15 09:03:53 +02:00
parent b2f03f6224
commit 6a6bcda298
2 changed files with 13 additions and 7 deletions
@@ -241,13 +241,16 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() {
@DisplayName("with build report")
@GradleTest
fun testBuildReportSmokeTestForConfigurationCache(gradleVersion: GradleVersion) {
project("simpleProject", gradleVersion) {
val buildOptions = defaultBuildOptions.copy(buildReport = listOf(BuildReportType.FILE))
build("assemble", buildOptions = buildOptions) {
project(
"simpleProject",
gradleVersion,
buildOptions = defaultBuildOptions.copy(buildReport = listOf(BuildReportType.FILE))
) {
build("assemble") {
assertBuildReportPathIsPrinted()
}
build("assemble", buildOptions = buildOptions) {
build("assemble") {
assertBuildReportPathIsPrinted()
}
}
@@ -90,9 +90,12 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
KotlinGradleBuildServices.registerIfAbsent(project.gradle).get().detectKotlinPluginLoadedInMultipleProjects(project, kotlinPluginVersion)
BuildMetricsService.registerIfAbsent(project)?.also {
BuildEventsListenerRegistryHolder.getInstance(project).listenerRegistry.onTaskCompletion(it)
BuildReportsService.registerIfAbsent(project, it)
BuildMetricsService.registerIfAbsent(project)?.also { buildMetricsService ->
val buildEventsListenerRegistryHolder = BuildEventsListenerRegistryHolder.getInstance(project)
buildEventsListenerRegistryHolder.listenerRegistry.onTaskCompletion(buildMetricsService)
BuildReportsService.registerIfAbsent(project, buildMetricsService).also {
buildEventsListenerRegistryHolder.listenerRegistry.onTaskCompletion(it)
}
}
}