Add statistic to buildScan
This commit is contained in:
@@ -97,6 +97,8 @@ dependencies {
|
|||||||
testCompileOnly(project(":kotlin-reflect-api"))
|
testCompileOnly(project(":kotlin-reflect-api"))
|
||||||
testCompileOnly(project(":kotlin-annotation-processing"))
|
testCompileOnly(project(":kotlin-annotation-processing"))
|
||||||
testCompileOnly(project(":kotlin-annotation-processing-gradle"))
|
testCompileOnly(project(":kotlin-annotation-processing-gradle"))
|
||||||
|
|
||||||
|
compileOnly("com.gradle:gradle-enterprise-gradle-plugin:3.6.3")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||||
|
|||||||
+14
-1
@@ -10,10 +10,14 @@ import org.gradle.BuildResult
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.invocation.Gradle
|
import org.gradle.api.invocation.Gradle
|
||||||
import org.gradle.api.logging.Logging
|
import org.gradle.api.logging.Logging
|
||||||
|
import com.gradle.scan.plugin.BuildScanExtension
|
||||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
||||||
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults
|
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults
|
||||||
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers
|
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.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.report.configureReporting
|
||||||
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
||||||
|
|
||||||
@@ -66,7 +70,16 @@ internal class KotlinGradleBuildServices private constructor(
|
|||||||
KotlinGradleBuildListener(KotlinGradleFinishBuildHandler())
|
KotlinGradleBuildListener(KotlinGradleFinishBuildHandler())
|
||||||
}
|
}
|
||||||
val kotlinGradleEsListenerProvider = project.provider {
|
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) {
|
if (instance != null) {
|
||||||
|
|||||||
+2
-3
@@ -27,8 +27,7 @@ enum class TaskExecutionState {
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
class KotlinBuildEsStatListener(val projectName: String) : OperationCompletionListener, AutoCloseable, TaskExecutionListener {
|
class KotlinBuildEsStatListener(val projectName: String, val reportStatistics : List<ReportStatistics>) : OperationCompletionListener, AutoCloseable, TaskExecutionListener {
|
||||||
val reportStatistics: ReportStatistics = ReportStatisticsToElasticSearch
|
|
||||||
|
|
||||||
val label by lazy { CompilerSystemProperties.KOTLIN_STAT_LABEl_PROPERTY.value }
|
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,
|
statData = statData, projectName = projectName, taskName = taskPath, changes = changes,
|
||||||
tags = taskExecutionResult?.taskInfo?.properties?.map { it.name } ?: emptyList()
|
tags = taskExecutionResult?.taskInfo?.properties?.map { it.name } ?: emptyList()
|
||||||
)
|
)
|
||||||
reportStatistics.report(compileStatData)
|
reportStatistics.forEach { it.report(compileStatData) }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun availableForStat(taskPath: String): Boolean {
|
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