Add Gradle task to clean test kit cache dir.
Always run it on CI when tests will finish. ^KT-45744 In Progress
This commit is contained in:
committed by
TeamCityServer
parent
644882df61
commit
34f1c58f1e
@@ -61,6 +61,14 @@ val isTeamcityBuild = project.kotlinBuildProperties.isTeamcityBuild ||
|
|||||||
?.toBoolean() ?: false
|
?.toBoolean() ?: false
|
||||||
} catch (_: Exception) { false }
|
} catch (_: Exception) { false }
|
||||||
|
|
||||||
|
|
||||||
|
val cleanTestKitCacheTask = tasks.register<Delete>("cleanTestKitCache") {
|
||||||
|
group = "Build"
|
||||||
|
description = "Deletes temporary Gradle TestKit cache"
|
||||||
|
|
||||||
|
delete(project.file(".testKitDir"))
|
||||||
|
}
|
||||||
|
|
||||||
fun Test.includeMppAndAndroid(include: Boolean) {
|
fun Test.includeMppAndAndroid(include: Boolean) {
|
||||||
if (isTeamcityBuild) {
|
if (isTeamcityBuild) {
|
||||||
val mppAndAndroidTestPatterns = listOf("*Multiplatform*", "*Mpp*", "*Android*")
|
val mppAndAndroidTestPatterns = listOf("*Multiplatform*", "*Mpp*", "*Android*")
|
||||||
@@ -95,6 +103,7 @@ projectTest(
|
|||||||
) {
|
) {
|
||||||
includeMppAndAndroid(false)
|
includeMppAndAndroid(false)
|
||||||
includeNative(false)
|
includeNative(false)
|
||||||
|
if (isTeamcityBuild) finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest(
|
projectTest(
|
||||||
@@ -105,6 +114,8 @@ projectTest(
|
|||||||
advanceGradleVersion()
|
advanceGradleVersion()
|
||||||
includeMppAndAndroid(false)
|
includeMppAndAndroid(false)
|
||||||
includeNative(false)
|
includeNative(false)
|
||||||
|
|
||||||
|
if (isTeamcityBuild) finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isTeamcityBuild) {
|
if (isTeamcityBuild) {
|
||||||
@@ -114,6 +125,7 @@ if (isTeamcityBuild) {
|
|||||||
jUnit5Enabled = true
|
jUnit5Enabled = true
|
||||||
) {
|
) {
|
||||||
includeNative(true)
|
includeNative(true)
|
||||||
|
finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest(
|
projectTest(
|
||||||
@@ -123,6 +135,7 @@ if (isTeamcityBuild) {
|
|||||||
) {
|
) {
|
||||||
advanceGradleVersion()
|
advanceGradleVersion()
|
||||||
includeNative(true)
|
includeNative(true)
|
||||||
|
finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest(
|
projectTest(
|
||||||
@@ -131,6 +144,7 @@ if (isTeamcityBuild) {
|
|||||||
jUnit5Enabled = true
|
jUnit5Enabled = true
|
||||||
) {
|
) {
|
||||||
includeMppAndAndroid(true)
|
includeMppAndAndroid(true)
|
||||||
|
finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest(
|
projectTest(
|
||||||
@@ -140,6 +154,7 @@ if (isTeamcityBuild) {
|
|||||||
) {
|
) {
|
||||||
advanceGradleVersion()
|
advanceGradleVersion()
|
||||||
includeMppAndAndroid(true)
|
includeMppAndAndroid(true)
|
||||||
|
finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,6 +165,7 @@ tasks.named<Task>("check") {
|
|||||||
dependsOn("testMppAndAndroid")
|
dependsOn("testMppAndAndroid")
|
||||||
dependsOn("testNative")
|
dependsOn("testNative")
|
||||||
dependsOn("testAdvanceGradleVersionNative")
|
dependsOn("testAdvanceGradleVersionNative")
|
||||||
|
finalizedBy(cleanTestKitCacheTask)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -38,7 +38,7 @@ fun KGPBaseTest.project(
|
|||||||
val gradleRunner = GradleRunner
|
val gradleRunner = GradleRunner
|
||||||
.create()
|
.create()
|
||||||
.withProjectDir(projectPath.toFile())
|
.withProjectDir(projectPath.toFile())
|
||||||
.withTestKitDir(Paths.get(".").testKitDir.toAbsolutePath().toFile())
|
.withTestKitDir(testKitDir.toAbsolutePath().toFile())
|
||||||
.withGradleVersion(gradleVersion.version)
|
.withGradleVersion(gradleVersion.version)
|
||||||
.also {
|
.also {
|
||||||
if (forceOutput) it.forwardOutput()
|
if (forceOutput) it.forwardOutput()
|
||||||
@@ -105,7 +105,10 @@ private fun TestProject.commonBuildSetup(
|
|||||||
return allBuildArguments
|
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(
|
private fun setupProjectFromTestResources(
|
||||||
projectName: String,
|
projectName: String,
|
||||||
|
|||||||
Reference in New Issue
Block a user