Add git branch to http statistic
This commit is contained in:
committed by
Space Team
parent
ad78f27cce
commit
ff340505ec
+3
@@ -86,6 +86,9 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() {
|
||||
if (!startParameters.tasks.containsAll(validationData.tasks.toList())) {
|
||||
validationErrors.add("Different set of executed tasks. Expected ${validationData.tasks.asList()} actual ${startParameters.tasks}")
|
||||
}
|
||||
if (gitBranch.isBlank()) {
|
||||
validationErrors.add("Git branch is not set")
|
||||
}
|
||||
return validationErrors
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -97,6 +97,9 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
||||
val buildReportHttpVerboseEnvironment: Boolean
|
||||
get() = property("kotlin.build.report.http.verbose_environment")?.toBoolean() ?: false
|
||||
|
||||
val buildReportHttpIncludeGitBranchName: Boolean
|
||||
get() = property("kotlin.build.report.http.include_git_branch.name")?.toBoolean() ?: false
|
||||
|
||||
val buildReportBuildScanCustomValuesLimit: Int
|
||||
get() = property("kotlin.build.report.build_scan.custom_values_limit")?.toInt() ?: 1000
|
||||
|
||||
|
||||
+1
@@ -73,6 +73,7 @@ data class BuildFinishStatisticsData(
|
||||
val timestamp: String = formatter.format(finishTime),
|
||||
val hostName: String? = "Unset",
|
||||
val tags: List<String>,
|
||||
val gitBranch: String = "Unset"
|
||||
)
|
||||
|
||||
|
||||
|
||||
+20
-3
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.gradle.report
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.file.DirectoryProperty
|
||||
import org.gradle.api.invocation.Gradle
|
||||
import org.gradle.api.logging.Logging
|
||||
import org.gradle.api.provider.ListProperty
|
||||
@@ -26,13 +27,14 @@ import org.jetbrains.kotlin.gradle.plugin.stat.StatTag
|
||||
import org.jetbrains.kotlin.gradle.report.data.BuildExecutionData
|
||||
import org.jetbrains.kotlin.gradle.utils.formatSize
|
||||
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
||||
import org.jetbrains.kotlin.konan.file.File
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.measureTimeMillisWithResult
|
||||
import java.io.File
|
||||
import java.net.InetAddress
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.concurrent.ExecutorService
|
||||
import java.util.concurrent.Executors
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.system.measureTimeMillis
|
||||
|
||||
abstract class BuildReportsService : BuildService<BuildReportsService.Parameters>, AutoCloseable, OperationCompletionListener {
|
||||
@@ -55,6 +57,7 @@ abstract class BuildReportsService : BuildService<BuildReportsService.Parameters
|
||||
val reportingSettings: Property<ReportingSettings>
|
||||
var buildMetricsService: Provider<BuildMetricsService>
|
||||
|
||||
val projectDir: DirectoryProperty
|
||||
val label: Property<String?>
|
||||
val projectName: Property<String>
|
||||
val kotlinVersion: Property<String>
|
||||
@@ -100,6 +103,17 @@ abstract class BuildReportsService : BuildService<BuildReportsService.Parameters
|
||||
}
|
||||
|
||||
private fun reportBuildFinish() {
|
||||
val httpReportSettings = parameters.reportingSettings.get().httpReportSettings ?: return
|
||||
|
||||
val branchName = if (httpReportSettings.includeGitBranchName) {
|
||||
val process = ProcessBuilder("git", "rev-parse", "--abbrev-ref", "HEAD")
|
||||
.directory(parameters.projectDir.asFile.get())
|
||||
.start().also {
|
||||
it.waitFor(5, TimeUnit.SECONDS)
|
||||
}
|
||||
process.inputStream.reader().readText()
|
||||
} else "is not set"
|
||||
|
||||
val buildFinishData = BuildFinishStatisticsData(
|
||||
projectName = parameters.projectName.get(),
|
||||
startParameters = parameters.startParameters.get()
|
||||
@@ -109,9 +123,11 @@ abstract class BuildReportsService : BuildService<BuildReportsService.Parameters
|
||||
totalTime = (System.nanoTime() - startTime) / 1_000_000,
|
||||
finishTime = System.currentTimeMillis(),
|
||||
hostName = hostName,
|
||||
tags = tags.toList()
|
||||
tags = tags.toList(),
|
||||
gitBranch = branchName
|
||||
)
|
||||
parameters.reportingSettings.get().httpReportSettings?.also { sendDataViaHttp(it, buildFinishData, log) }
|
||||
|
||||
sendDataViaHttp(httpReportSettings, buildFinishData, log)
|
||||
}
|
||||
|
||||
private fun GradleBuildStartParameters.includeVerboseEnvironment(verboseEnvironment: Boolean): GradleBuildStartParameters {
|
||||
@@ -301,6 +317,7 @@ abstract class BuildReportsService : BuildService<BuildReportsService.Parameters
|
||||
it.parameters.startParameters.set(getStartParameters(project))
|
||||
it.parameters.reportingSettings.set(reportingSettings)
|
||||
it.parameters.buildMetricsService = buildMetricsService
|
||||
it.parameters.projectDir.set(project.rootProject.layout.projectDirectory)
|
||||
|
||||
//init gradle tags for build scan and http reports
|
||||
it.parameters.additionalTags.value(setupTags(gradle))
|
||||
|
||||
+2
-1
@@ -35,7 +35,8 @@ data class HttpReportSettings(
|
||||
val url: String,
|
||||
val password: String?,
|
||||
val user: String?,
|
||||
val verboseEnvironment: Boolean
|
||||
val verboseEnvironment: Boolean,
|
||||
val includeGitBranchName: Boolean
|
||||
) : Serializable {
|
||||
companion object {
|
||||
const val serialVersionUID: Long = 0
|
||||
|
||||
+2
-1
@@ -34,7 +34,8 @@ internal fun reportingSettings(rootProject: Project): ReportingSettings {
|
||||
?: throw IllegalStateException("Can't configure http report: '$KOTLIN_BUILD_REPORT_HTTP_URL' property is mandatory")
|
||||
val password = properties.buildReportHttpPassword
|
||||
val user = properties.buildReportHttpUser
|
||||
HttpReportSettings(url, password, user, properties.buildReportHttpVerboseEnvironment)
|
||||
val includeGitBranchName = properties.buildReportHttpIncludeGitBranchName
|
||||
HttpReportSettings(url, password, user, properties.buildReportHttpVerboseEnvironment, includeGitBranchName)
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user