Add JSON output type for build reports
#KT-65792 Fixed
This commit is contained in:
committed by
Space Team
parent
f493df42a9
commit
5885514c3d
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.jps.statistic
|
||||
import org.jetbrains.kotlin.build.report.metrics.JpsBuildPerformanceMetric
|
||||
import org.jetbrains.kotlin.build.report.metrics.JpsBuildTime
|
||||
import org.jetbrains.kotlin.build.report.statistics.CompileStatisticsData
|
||||
import org.jetbrains.kotlin.build.report.statistics.file.FileReportService
|
||||
import org.jetbrains.kotlin.compilerRunner.JpsKotlinLogger
|
||||
import org.jetbrains.kotlin.build.report.statistics.file.Printer
|
||||
import org.jetbrains.kotlin.build.report.statistics.file.ReadableFileReportService
|
||||
import java.io.File
|
||||
import kotlin.math.min
|
||||
|
||||
@@ -17,14 +17,13 @@ internal class JpsFileReportService(
|
||||
buildReportDir: File,
|
||||
projectName: String,
|
||||
printMetrics: Boolean,
|
||||
logger: JpsKotlinLogger,
|
||||
private val changedFileListPerLimit: Int?
|
||||
) : FileReportService<JpsBuildTime, JpsBuildPerformanceMetric>(buildReportDir, projectName, printMetrics, logger) {
|
||||
override fun printCustomTaskMetrics(statisticsData: CompileStatisticsData<JpsBuildTime, JpsBuildPerformanceMetric>) {
|
||||
) : ReadableFileReportService<JpsBuildTime, JpsBuildPerformanceMetric>(buildReportDir, projectName, printMetrics) {
|
||||
override fun printCustomTaskMetrics(statisticsData: CompileStatisticsData<JpsBuildTime, JpsBuildPerformanceMetric>, printer: Printer) {
|
||||
val changedFiles = statisticsData.getChanges().let { changes ->
|
||||
changedFileListPerLimit?.let { changes.subList(0, min(it, changes.size)) } ?: changes
|
||||
}
|
||||
p.println("Changed files: ${changedFiles.sorted()}")
|
||||
p.println("Execution result: ${statisticsData.getTaskResult()}")
|
||||
printer.println("Changed files: ${changedFiles.sorted()}")
|
||||
printer.println("Execution result: ${statisticsData.getTaskResult()}")
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.build.report.FileReportSettings
|
||||
import org.jetbrains.kotlin.build.report.HttpReportSettings
|
||||
import org.jetbrains.kotlin.build.report.metrics.*
|
||||
import org.jetbrains.kotlin.build.report.statistics.*
|
||||
import org.jetbrains.kotlin.build.report.statistics.file.ReadableFileReportData
|
||||
import org.jetbrains.kotlin.compilerRunner.JpsKotlinLogger
|
||||
import org.jetbrains.kotlin.jps.build.KotlinChunk
|
||||
import org.jetbrains.kotlin.jps.build.KotlinDirtySourceFilesHolder
|
||||
@@ -143,10 +144,13 @@ class JpsStatisticsReportServiceImpl(
|
||||
httpService?.sendData(compileStatisticsData, loggerAdapter)
|
||||
fileReportSettings?.also {
|
||||
JpsFileReportService(
|
||||
it.buildReportDir, context.projectDescriptor.project.name, true, loggerAdapter, it.changedFileListPerLimit
|
||||
it.buildReportDir, context.projectDescriptor.project.name, true, it.changedFileListPerLimit
|
||||
).process(
|
||||
compileStatisticsData,
|
||||
BuildStartParameters(tasks = listOf(jpsBuildTaskName)), emptyList(),
|
||||
ReadableFileReportData(
|
||||
compileStatisticsData,
|
||||
BuildStartParameters(tasks = listOf(jpsBuildTaskName)), emptyList()
|
||||
),
|
||||
loggerAdapter
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user