From 45391ef62f6d2c0648bf62c369f06556d9432cab Mon Sep 17 00:00:00 2001 From: Dmytro Rodionov Date: Tue, 9 Sep 2025 08:43:00 +0200 Subject: [PATCH 1/3] Rework start parameters --- .../build/insights/GradleInsightsPlugin.kt | 12 ++++++++ .../modules/timing/models/BuildInfo.kt | 29 ++++++++++--------- .../report/CompositeReportBuildService.kt | 4 ++- .../insights/report/impl/html/HTMLReporter.kt | 4 +++ src/main/resources/index.html | 1 + src/main/resources/style.css | 15 ++++++++++ 6 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt b/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt index 2cf8b5f..a66570a 100644 --- a/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt +++ b/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt @@ -57,6 +57,18 @@ class GradleInsightsPlugin @Inject constructor(private val registry: BuildEvents systemLoadModule.getSystemLoadReportProvider()?.let { buildServiceSpec.parameters.systemLoadReportService.set(it) } + + val startParameter = project.gradle.startParameter + val parts = mutableListOf() + startParameter.projectDir?.absolutePath?.let { parts.add("-p $it") } + if (startParameter.taskNames.isNotEmpty()) { + parts.add(startParameter.taskNames.joinToString(" ")) + } + if (startParameter.projectProperties.isNotEmpty()) { + val props = startParameter.projectProperties.toSortedMap() + props.forEach { (k, v) -> parts.add("-P${k}=${v}") } + } + buildServiceSpec.parameters.startParameters.set(parts.joinToString(" ")) } registry.onTaskCompletion(compositeReportBuildService) diff --git a/src/main/kotlin/com/smplio/gradle/build/insights/modules/timing/models/BuildInfo.kt b/src/main/kotlin/com/smplio/gradle/build/insights/modules/timing/models/BuildInfo.kt index e57ff19..b24c521 100644 --- a/src/main/kotlin/com/smplio/gradle/build/insights/modules/timing/models/BuildInfo.kt +++ b/src/main/kotlin/com/smplio/gradle/build/insights/modules/timing/models/BuildInfo.kt @@ -2,18 +2,19 @@ package com.smplio.gradle.build.insights.modules.timing.models import java.io.Serializable -data class BuildInfo( - val status: ExecutionStatus, -): Serializable { - sealed class ExecutionStatus { - class Success : ExecutionStatus() - class Failed : ExecutionStatus() + data class BuildInfo( + val status: ExecutionStatus, + val startParameters: String = "", + ): Serializable { + sealed class ExecutionStatus { + class Success : ExecutionStatus() + class Failed : ExecutionStatus() - override fun toString(): String { - return when (this) { - is Success -> "SUCCESS" - is Failed -> "FAILED" - } - } - } -} + override fun toString(): String { + return when (this) { + is Success -> "SUCCESS" + is Failed -> "FAILED" + } + } + } + } diff --git a/src/main/kotlin/com/smplio/gradle/build/insights/report/CompositeReportBuildService.kt b/src/main/kotlin/com/smplio/gradle/build/insights/report/CompositeReportBuildService.kt index 7e96143..277aa6b 100644 --- a/src/main/kotlin/com/smplio/gradle/build/insights/report/CompositeReportBuildService.kt +++ b/src/main/kotlin/com/smplio/gradle/build/insights/report/CompositeReportBuildService.kt @@ -31,6 +31,7 @@ abstract class CompositeReportBuildService : BuildService val configurationTimeReportService: Property val executionTimeReportService: Property + val startParameters: Property } override fun close() { @@ -67,7 +68,8 @@ abstract class CompositeReportBuildService : BuildService +

%s

diff --git a/src/main/resources/style.css b/src/main/resources/style.css index e0b091f..6129152 100644 --- a/src/main/resources/style.css +++ b/src/main/resources/style.css @@ -1,5 +1,6 @@ body { font-family: Arial, sans-serif; + margin: 0; } .overflow-container { @@ -152,4 +153,18 @@ body { /* Show the tooltip text when you mouse over the tooltip container */ .tooltip:hover .tooltiptext { visibility: visible; +} + +/* Header bar */ +.header { + width: 100%; + background: #ffffff; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); + padding: 12px 16px; +} + +.header h2 { + margin: 0 0 6px 0; + font-size: 16px; + color: #333; } \ No newline at end of file From a62c999b9bc8b5ca2bcf50046ef396ad7249c9cb Mon Sep 17 00:00:00 2001 From: Dmytro Rodionov Date: Tue, 9 Sep 2025 12:49:29 +0200 Subject: [PATCH 2/3] Combine start parameters --- .../build/insights/GradleInsightsPlugin.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt b/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt index a66570a..9221f56 100644 --- a/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt +++ b/src/main/kotlin/com/smplio/gradle/build/insights/GradleInsightsPlugin.kt @@ -60,14 +60,21 @@ class GradleInsightsPlugin @Inject constructor(private val registry: BuildEvents val startParameter = project.gradle.startParameter val parts = mutableListOf() - startParameter.projectDir?.absolutePath?.let { parts.add("-p $it") } + startParameter.projectDir?.let { projectDir -> + val rootPath = project.rootProject.rootDir.toPath() + val projectPath = projectDir.toPath() + val p = try { + val rel = rootPath.relativize(projectPath).toString() + rel.ifEmpty { "." } + } catch (e: IllegalArgumentException) { + // Fallback if paths are on different roots (e.g., different drives) + projectPath.toString() + } + parts.add("-p $p") + } if (startParameter.taskNames.isNotEmpty()) { parts.add(startParameter.taskNames.joinToString(" ")) } - if (startParameter.projectProperties.isNotEmpty()) { - val props = startParameter.projectProperties.toSortedMap() - props.forEach { (k, v) -> parts.add("-P${k}=${v}") } - } buildServiceSpec.parameters.startParameters.set(parts.joinToString(" ")) } registry.onTaskCompletion(compositeReportBuildService) From 614421ea49f84adfcecd30d5a1ab6719f51fa2a3 Mon Sep 17 00:00:00 2001 From: Dmytro Rodionov Date: Tue, 9 Sep 2025 12:49:41 +0200 Subject: [PATCH 3/3] Update stats style --- src/main/resources/build_charts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/build_charts.js b/src/main/resources/build_charts.js index ef24df0..1bd3669 100644 --- a/src/main/resources/build_charts.js +++ b/src/main/resources/build_charts.js @@ -69,7 +69,7 @@ new Chart(cpuChart, { label += ': '; } if (context.parsed.y !== null) { - label += context.parsed.y; + label += Math.round(context.parsed.y); } label += '%'; return label;