diff --git a/measure-builds/src/main/java/com/automattic/android/measure/networking/MetricsReporter.kt b/measure-builds/src/main/java/com/automattic/android/measure/networking/MetricsReporter.kt index 2efae7e..1f389f9 100644 --- a/measure-builds/src/main/java/com/automattic/android/measure/networking/MetricsReporter.kt +++ b/measure-builds/src/main/java/com/automattic/android/measure/networking/MetricsReporter.kt @@ -49,7 +49,7 @@ class MetricsReporter( ) { reportLocally(report) - val payload = report.toAppsInfraPayload(gradleScanId) + val payload = report.toAppsMetricsPayload(gradleScanId) @Suppress("TooGenericExceptionCaught") try { logSlowTasks(report) diff --git a/measure-builds/src/main/java/com/automattic/android/measure/networking/ToAppsInfraPayload.kt b/measure-builds/src/main/java/com/automattic/android/measure/networking/ToAppsInfraPayload.kt index a5ce05c..0179ff8 100644 --- a/measure-builds/src/main/java/com/automattic/android/measure/networking/ToAppsInfraPayload.kt +++ b/measure-builds/src/main/java/com/automattic/android/measure/networking/ToAppsInfraPayload.kt @@ -5,7 +5,7 @@ import com.automattic.android.measure.models.MeasuredTask.State.EXECUTED import com.automattic.android.measure.models.MeasuredTask.State.IS_FROM_CACHE import com.automattic.android.measure.models.MeasuredTask.State.UP_TO_DATE -fun InMemoryReport.toAppsInfraPayload(gradleScanId: String?): GroupedAppsMetrics { +fun InMemoryReport.toAppsMetricsPayload(gradleScanId: String?): GroupedAppsMetrics { val projectKey = buildData.forProject.name.lowercase() val meta = mapOf( diff --git a/measure-builds/src/main/java/com/automattic/android/measure/networking/json/StringListSerializer.kt b/measure-builds/src/main/java/com/automattic/android/measure/networking/json/StringListSerializer.kt deleted file mode 100644 index ab1d8da..0000000 --- a/measure-builds/src/main/java/com/automattic/android/measure/networking/json/StringListSerializer.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.automattic.android.measure.networking.json - -import kotlinx.serialization.KSerializer -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder - -private const val DELIMITER = "," - -object StringListSerializer : KSerializer> { - override val descriptor: SerialDescriptor = - PrimitiveSerialDescriptor("StringListAsStringSerializer", PrimitiveKind.STRING) - - override fun serialize(encoder: Encoder, value: List) { - encoder.encodeString(value.joinToString(separator = DELIMITER)) - } - - override fun deserialize(decoder: Decoder): List { - val string = decoder.decodeString() - return string.split(DELIMITER) - } -} diff --git a/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginConfigurationCacheTests.kt b/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginConfigurationCacheTests.kt index a137a5e..9e3009d 100644 --- a/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginConfigurationCacheTests.kt +++ b/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginConfigurationCacheTests.kt @@ -27,9 +27,6 @@ class BuildTimePluginConfigurationCacheTests { @Test fun `given a project utilizes configuration cache, when build finishes, then report 0 configuration cache duration`() { - // given - val runner = runner() - // when runner("help", "--stacktrace").build() @@ -83,13 +80,11 @@ class BuildTimePluginConfigurationCacheTests { } private fun runner(vararg arguments: String): GradleRunner { - val projectDir = File("build/functionalTest") - projectDir.mkdirs() - - projectDir.resolve("settings.gradle.kts").writeText("") - - projectDir.resolve("build.gradle.kts").writeText( - """ + val projectDir = File("build/functionalTest").apply { + mkdirs() + resolve("settings.gradle.kts").writeText("") + resolve("build.gradle.kts").writeText( + """ plugins { id("com.automattic.android.measure-builds") } @@ -98,15 +93,15 @@ class BuildTimePluginConfigurationCacheTests { attachGradleScanId.set(false) automatticProject.set(com.automattic.android.measure.MeasureBuildsExtension.AutomatticProject.WooCommerce) } - """.trimIndent() - ) - - val runner = GradleRunner.create() - runner.forwardOutput() - runner.withPluginClasspath() - runner.withArguments(*arguments, "--configuration-cache") - runner.withProjectDir(projectDir) - return runner + """.trimIndent() + ) + } + + return GradleRunner.create() + .forwardOutput() + .withPluginClasspath() + .withArguments(*arguments, "--configuration-cache") + .withProjectDir(projectDir) } private val executionData: ExecutionData diff --git a/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginTest.kt b/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginTest.kt index 2ad4d3e..058e3ee 100644 --- a/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginTest.kt +++ b/measure-builds/src/test/java/com/automattic/android/measure/BuildTimePluginTest.kt @@ -115,8 +115,7 @@ class BuildTimePluginTest { val run = runner.withArguments("help").build() // then - assertThat(run.output) - .contains("No authToken provided. Skipping reporting.") + assertThat(run.output).contains("No authToken provided. Skipping reporting.") .contains("BUILD SUCCESSFUL") } @@ -130,17 +129,16 @@ class BuildTimePluginTest { ) // when - val run = runner.withArguments("help").build() + runner.withArguments("help").build() // then File("build/functionalTest/build/reports/measure_builds/execution_data.json").let { val executionData = Json.decodeFromString(it.readText()) - assertThat(executionData.tasks).hasSize(1) - .first().satisfies({ task -> - assertThat(task.name).isEqualTo(":help") - assertThat(task.state).isEqualTo(MeasuredTask.State.EXECUTED) - }) + assertThat(executionData.tasks).hasSize(1).first().satisfies({ task -> + assertThat(task.name).isEqualTo(":help") + assertThat(task.state).isEqualTo(MeasuredTask.State.EXECUTED) + }) } } @@ -157,44 +155,44 @@ class BuildTimePluginTest { applyAppsMetricsToken: Boolean = true, vararg arguments: String, ): GradleRunner { - val projectDir = File("build/functionalTest") - projectDir.mkdirs() - if (projectWithSendingScans) { - projectDir.resolve("settings.gradle.kts").writeText( - """ - plugins { - id("com.gradle.enterprise") version "3.15.1" - } - gradleEnterprise { - buildScan { - publishAlways() - termsOfServiceUrl = "https://gradle.com/terms-of-service" - termsOfServiceAgree = "yes" - isUploadInBackground = false - } + val projectDir = File("build/functionalTest").apply { + mkdirs() + if (projectWithSendingScans) { + resolve("settings.gradle.kts").writeText( + """ + plugins { + id("com.gradle.enterprise") version "3.15.1" + } + gradleEnterprise { + buildScan { + publishAlways() + termsOfServiceUrl = "https://gradle.com/terms-of-service" + termsOfServiceAgree = "yes" + isUploadInBackground = false + } + } + """.trimIndent() + ) } + resolve("build.gradle.kts").writeText( + """ + plugins { + id("com.automattic.android.measure-builds") + } + measureBuilds { + ${if (enable != null) "enable.set($enable)" else ""} + attachGradleScanId.set($attachGradleScanId) + automatticProject.set(com.automattic.android.measure.MeasureBuildsExtension.AutomatticProject.WooCommerce) + ${if (applyAppsMetricsToken) "authToken.set(\"token\")" else ""} + } """.trimIndent() ) } - projectDir.resolve("build.gradle.kts").writeText( - """ - plugins { - id("com.automattic.android.measure-builds") - } - measureBuilds { - ${if (enable != null) "enable.set($enable)" else ""} - attachGradleScanId.set($attachGradleScanId) - automatticProject.set(com.automattic.android.measure.MeasureBuildsExtension.AutomatticProject.WooCommerce) - ${if (applyAppsMetricsToken) "authToken.set(\"token\")" else ""} - } - """.trimIndent() - ) - val runner = GradleRunner.create() - runner.forwardOutput() - runner.withPluginClasspath() - runner.withArguments(arguments.toList()) - runner.withProjectDir(projectDir) - return runner + return GradleRunner.create() + .forwardOutput() + .withPluginClasspath() + .withArguments(arguments.toList()) + .withProjectDir(projectDir) } }