Merge "Improve error line number detection to use upstream method." into main
diff --git a/build.gradle.kts b/build.gradle.kts
index 401a306..e987e57 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -19,7 +19,7 @@
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 import java.util.Locale
 
-defaultTasks = mutableListOf("test", "jar", "shadowJar", "ktlint", "publish")
+defaultTasks = mutableListOf("test", "jar", "shadowJar", "ktlint", "publish", "zipTestResults")
 
 repositories {
     maven("../../prebuilts/androidx/external")
@@ -338,12 +338,8 @@
 val String.capitalize: String  get() =
     replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
 
-val zipTask = project.tasks.register<Zip>("zipResultsOf${name.capitalize}") {
-    destinationDirectory.set(File(getDistributionDirectory(), "host-test-reports"))
-    archiveFileName.set("dackka-tests.zip")
-}
-
-tasks.withType<Test> {
+val testTask = tasks.named<Test>("test")
+testTask.configure {
     maxHeapSize = "4g"
     maxParallelForks = Runtime.getRuntime().availableProcessors()
     testLogging.events = hashSetOf(
@@ -353,14 +349,14 @@
         TestLogEvent.STANDARD_OUT,
         TestLogEvent.STANDARD_ERROR
     )
-
     if (isBuildingOnServer()) ignoreFailures = true
-    finalizedBy(zipTask)
-    doFirst {
-        zipTask.configure {
-            from(reports.junitXml.outputLocation)
-        }
-    }
+}
+
+val zipTask = project.tasks.register<Zip>("zipTestResults") {
+    dependsOn(testTask)
+    destinationDirectory.set(File(getDistributionDirectory(), "host-test-reports"))
+    archiveFileName.set("dackka-tests.zip")
+    from(project.file(testTask.flatMap { it.reports.junitXml.outputLocation}))
 }
 
 val ktlintConfiguration: Configuration by configurations.creating
diff --git a/gradle.properties b/gradle.properties
index 4f89b78..6fe3c42 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,5 @@
 org.gradle.jvmargs=-Xmx8g -XX:+HeapDumpOnOutOfMemoryError
 org.gradle.parallel=true
 org.gradle.caching=true
+org.gradle.configuration-cache=true
 kotlin.mpp.stability.nowarn=true