Add statistic to buildScan
This commit is contained in:
@@ -97,6 +97,8 @@ dependencies {
|
||||
testCompileOnly(project(":kotlin-reflect-api"))
|
||||
testCompileOnly(project(":kotlin-annotation-processing"))
|
||||
testCompileOnly(project(":kotlin-annotation-processing-gradle"))
|
||||
|
||||
compileOnly("com.gradle:gradle-enterprise-gradle-plugin:3.6.3")
|
||||
}
|
||||
|
||||
if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||
|
||||
+14
-1
@@ -10,10 +10,14 @@ import org.gradle.BuildResult
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.invocation.Gradle
|
||||
import org.gradle.api.logging.Logging
|
||||
import com.gradle.scan.plugin.BuildScanExtension
|
||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers
|
||||
import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildEsStatListener
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToBuildScan
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToElasticSearch
|
||||
import org.jetbrains.kotlin.gradle.report.configureReporting
|
||||
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
||||
|
||||
@@ -66,7 +70,16 @@ internal class KotlinGradleBuildServices private constructor(
|
||||
KotlinGradleBuildListener(KotlinGradleFinishBuildHandler())
|
||||
}
|
||||
val kotlinGradleEsListenerProvider = project.provider {
|
||||
KotlinBuildEsStatListener(project.rootProject.name)
|
||||
// val listeners = project.objects.listProperty(ReportStatistics::class.java)
|
||||
// .value(listOf<ReportStatistics>(ReportStatisticsToElasticSearch))
|
||||
// project.rootProject.extensions.findByType(BuildScanExtension::class.java)?.also { listeners.add(ReportStatisticsToBuildScan(it)) }
|
||||
// KotlinBuildEsStatListener(project.rootProject.name, listeners.get())
|
||||
|
||||
val listeners = ArrayList<ReportStatistics>()
|
||||
val buildScan = project.rootProject.extensions.findByName("buildScan")
|
||||
buildScan?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension)) }
|
||||
listeners.add(ReportStatisticsToElasticSearch)
|
||||
KotlinBuildEsStatListener(project.rootProject.name, listeners)
|
||||
}
|
||||
|
||||
if (instance != null) {
|
||||
|
||||
+2
-3
@@ -27,8 +27,7 @@ enum class TaskExecutionState {
|
||||
;
|
||||
}
|
||||
|
||||
class KotlinBuildEsStatListener(val projectName: String) : OperationCompletionListener, AutoCloseable, TaskExecutionListener {
|
||||
val reportStatistics: ReportStatistics = ReportStatisticsToElasticSearch
|
||||
class KotlinBuildEsStatListener(val projectName: String, val reportStatistics : List<ReportStatistics>) : OperationCompletionListener, AutoCloseable, TaskExecutionListener {
|
||||
|
||||
val label by lazy { CompilerSystemProperties.KOTLIN_STAT_LABEl_PROPERTY.value }
|
||||
|
||||
@@ -69,7 +68,7 @@ class KotlinBuildEsStatListener(val projectName: String) : OperationCompletionLi
|
||||
statData = statData, projectName = projectName, taskName = taskPath, changes = changes,
|
||||
tags = taskExecutionResult?.taskInfo?.properties?.map { it.name } ?: emptyList()
|
||||
)
|
||||
reportStatistics.report(compileStatData)
|
||||
reportStatistics.forEach { it.report(compileStatData) }
|
||||
}
|
||||
|
||||
private fun availableForStat(taskPath: String): Boolean {
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.statistics
|
||||
|
||||
import com.google.gson.Gson
|
||||
import com.gradle.scan.plugin.BuildScanExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.stat.CompileStatData
|
||||
import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics
|
||||
|
||||
class ReportStatisticsToBuildScan(val buildScan: BuildScanExtension) : ReportStatistics {
|
||||
override fun report(data: CompileStatData) {
|
||||
buildScan.value(data.taskName, Gson().toJson(data).toString())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user