From 34f1c58f1e6163d89b2b4892ec78b7832e35f0c7 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Fri, 26 Mar 2021 17:23:36 +0100 Subject: [PATCH] Add Gradle task to clean test kit cache dir. Always run it on CI when tests will finish. ^KT-45744 In Progress --- .../build.gradle.kts | 16 ++++++++++++++++ .../jetbrains/kotlin/gradle/testbase/testDsl.kt | 7 +++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index b645f2863de..c9ec46067ab 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -61,6 +61,14 @@ val isTeamcityBuild = project.kotlinBuildProperties.isTeamcityBuild || ?.toBoolean() ?: false } catch (_: Exception) { false } + +val cleanTestKitCacheTask = tasks.register("cleanTestKitCache") { + group = "Build" + description = "Deletes temporary Gradle TestKit cache" + + delete(project.file(".testKitDir")) +} + fun Test.includeMppAndAndroid(include: Boolean) { if (isTeamcityBuild) { val mppAndAndroidTestPatterns = listOf("*Multiplatform*", "*Mpp*", "*Android*") @@ -95,6 +103,7 @@ projectTest( ) { includeMppAndAndroid(false) includeNative(false) + if (isTeamcityBuild) finalizedBy(cleanTestKitCacheTask) } projectTest( @@ -105,6 +114,8 @@ projectTest( advanceGradleVersion() includeMppAndAndroid(false) includeNative(false) + + if (isTeamcityBuild) finalizedBy(cleanTestKitCacheTask) } if (isTeamcityBuild) { @@ -114,6 +125,7 @@ if (isTeamcityBuild) { jUnit5Enabled = true ) { includeNative(true) + finalizedBy(cleanTestKitCacheTask) } projectTest( @@ -123,6 +135,7 @@ if (isTeamcityBuild) { ) { advanceGradleVersion() includeNative(true) + finalizedBy(cleanTestKitCacheTask) } projectTest( @@ -131,6 +144,7 @@ if (isTeamcityBuild) { jUnit5Enabled = true ) { includeMppAndAndroid(true) + finalizedBy(cleanTestKitCacheTask) } projectTest( @@ -140,6 +154,7 @@ if (isTeamcityBuild) { ) { advanceGradleVersion() includeMppAndAndroid(true) + finalizedBy(cleanTestKitCacheTask) } } @@ -150,6 +165,7 @@ tasks.named("check") { dependsOn("testMppAndAndroid") dependsOn("testNative") dependsOn("testAdvanceGradleVersionNative") + finalizedBy(cleanTestKitCacheTask) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt index 22737287071..f34078528dd 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt @@ -38,7 +38,7 @@ fun KGPBaseTest.project( val gradleRunner = GradleRunner .create() .withProjectDir(projectPath.toFile()) - .withTestKitDir(Paths.get(".").testKitDir.toAbsolutePath().toFile()) + .withTestKitDir(testKitDir.toAbsolutePath().toFile()) .withGradleVersion(gradleVersion.version) .also { if (forceOutput) it.forwardOutput() @@ -105,7 +105,10 @@ private fun TestProject.commonBuildSetup( return allBuildArguments } -private val Path.testKitDir get() = resolve(".testKitDir") +/** + * On changing test kit dir location update related location in 'cleanTestKitCache' task. + */ +private val testKitDir get() = Paths.get(".").resolve(".testKitDir") private fun setupProjectFromTestResources( projectName: String,