Add SINGLE_FILE statistic option
This commit is contained in:
+4
@@ -49,9 +49,13 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated(message = "Please use kotlin.build.report.output=SINGLE_FILE and kotlin.build.report.single_file ")
|
||||||
val singleBuildMetricsFile: File?
|
val singleBuildMetricsFile: File?
|
||||||
get() = property("kotlin.internal.single.build.metrics.file")?.let { File(it) }
|
get() = property("kotlin.internal.single.build.metrics.file")?.let { File(it) }
|
||||||
|
|
||||||
|
val buildReportSingleFile: File?
|
||||||
|
get() = property("kotlin.build.report.single_file")?.let { File(it) }
|
||||||
|
|
||||||
@Deprecated(message = "Please use kotlin.build.report.output instead ")
|
@Deprecated(message = "Please use kotlin.build.report.output instead ")
|
||||||
val buildReportEnabled: Boolean
|
val buildReportEnabled: Boolean
|
||||||
get() {
|
get() {
|
||||||
|
|||||||
+3
-6
@@ -134,10 +134,7 @@ abstract class BuildMetricsReporterService : BuildService<BuildMetricsReporterSe
|
|||||||
}
|
}
|
||||||
|
|
||||||
val reportingSettings = reportingSettings(project.rootProject)
|
val reportingSettings = reportingSettings(project.rootProject)
|
||||||
if (reportingSettings.buildReportOutputs.isEmpty()
|
if (reportingSettings.buildReportOutputs.isEmpty()) {
|
||||||
&& reportingSettings.fileReportSettings == null
|
|
||||||
&& reportingSettings.metricsOutputFile == null
|
|
||||||
) {
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,8 +143,8 @@ abstract class BuildMetricsReporterService : BuildService<BuildMetricsReporterSe
|
|||||||
reportingSettings.fileReportSettings?.let { fileReportSettings ->
|
reportingSettings.fileReportSettings?.let { fileReportSettings ->
|
||||||
buildDataProcessors.add(PlainTextBuildReportWriterDataProcessor(fileReportSettings, project.rootProject.name))
|
buildDataProcessors.add(PlainTextBuildReportWriterDataProcessor(fileReportSettings, project.rootProject.name))
|
||||||
}
|
}
|
||||||
reportingSettings.metricsOutputFile?.let { metricsOutputFile ->
|
reportingSettings.singleOutputFile?.let { singleOutputFile ->
|
||||||
buildDataProcessors.add(MetricsWriter(metricsOutputFile.absoluteFile))
|
buildDataProcessors.add(MetricsWriter(singleOutputFile.absoluteFile))
|
||||||
}
|
}
|
||||||
|
|
||||||
it.parameters.startParameters = getStartParameters(project)
|
it.parameters.startParameters = getStartParameters(project)
|
||||||
|
|||||||
+2
-1
@@ -10,7 +10,8 @@ import java.io.Serializable
|
|||||||
enum class BuildReportType : Serializable {
|
enum class BuildReportType : Serializable {
|
||||||
FILE,
|
FILE,
|
||||||
HTTP,
|
HTTP,
|
||||||
BUILD_SCAN;
|
BUILD_SCAN,
|
||||||
|
SINGLE_FILE;
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val serialVersionUID: Long = 0
|
const val serialVersionUID: Long = 0
|
||||||
|
|||||||
+2
-2
@@ -9,12 +9,12 @@ import java.io.File
|
|||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
data class ReportingSettings(
|
data class ReportingSettings(
|
||||||
val metricsOutputFile: File? = null,
|
|
||||||
val buildReportOutputs: List<BuildReportType> = emptyList(),
|
val buildReportOutputs: List<BuildReportType> = emptyList(),
|
||||||
val buildReportMode: BuildReportMode = BuildReportMode.NONE,
|
val buildReportMode: BuildReportMode = BuildReportMode.NONE,
|
||||||
val buildReportLabel: String? = null,
|
val buildReportLabel: String? = null,
|
||||||
val fileReportSettings: FileReportSettings? = null,
|
val fileReportSettings: FileReportSettings? = null,
|
||||||
val httpReportSettings: HttpReportSettings? = null
|
val httpReportSettings: HttpReportSettings? = null,
|
||||||
|
val singleOutputFile: File? = null
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
companion object {
|
companion object {
|
||||||
const val serialVersionUID: Long = 1
|
const val serialVersionUID: Long = 1
|
||||||
|
|||||||
+11
-4
@@ -13,7 +13,7 @@ internal fun reportingSettings(rootProject: Project): ReportingSettings {
|
|||||||
val buildReportOutputTypes = properties.buildReportOutputs.map {
|
val buildReportOutputTypes = properties.buildReportOutputs.map {
|
||||||
BuildReportType.values().firstOrNull { brt -> brt.name == it.trim().toUpperCase() }
|
BuildReportType.values().firstOrNull { brt -> brt.name == it.trim().toUpperCase() }
|
||||||
?: throw IllegalStateException("Unknown output type: $it")
|
?: throw IllegalStateException("Unknown output type: $it")
|
||||||
}
|
}.toMutableList() //temporary solution. support old property
|
||||||
val buildReportMode =
|
val buildReportMode =
|
||||||
when {
|
when {
|
||||||
buildReportOutputTypes.isEmpty() -> BuildReportMode.NONE
|
buildReportOutputTypes.isEmpty() -> BuildReportMode.NONE
|
||||||
@@ -36,14 +36,21 @@ internal fun reportingSettings(rootProject: Project): ReportingSettings {
|
|||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
val metricsOutputFile = properties.singleBuildMetricsFile
|
|
||||||
|
//temporary solution. support old property
|
||||||
|
val oldSingleBuildMetric = properties.singleBuildMetricsFile?.also { buildReportOutputTypes.add(BuildReportType.SINGLE_FILE) }
|
||||||
|
|
||||||
|
val singleOutputFile = if (buildReportOutputTypes.contains(BuildReportType.SINGLE_FILE)) {
|
||||||
|
properties.buildReportSingleFile ?: oldSingleBuildMetric
|
||||||
|
} else null
|
||||||
|
|
||||||
return ReportingSettings(
|
return ReportingSettings(
|
||||||
metricsOutputFile = metricsOutputFile,
|
|
||||||
buildReportMode = buildReportMode,
|
buildReportMode = buildReportMode,
|
||||||
buildReportLabel = properties.buildReportLabel,
|
buildReportLabel = properties.buildReportLabel,
|
||||||
fileReportSettings = fileReportSettings,
|
fileReportSettings = fileReportSettings,
|
||||||
httpReportSettings = httpReportSettings,
|
httpReportSettings = httpReportSettings,
|
||||||
buildReportOutputs = buildReportOutputTypes
|
buildReportOutputs = buildReportOutputTypes,
|
||||||
|
singleOutputFile = singleOutputFile,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user