Add more tasks in Gradle build for running GradleIT in parallel

This commit is contained in:
Andrey Uskov
2020-08-26 00:22:04 +03:00
parent a7f57646bf
commit bf3a7e5fea
@@ -49,16 +49,52 @@ dependencies {
// Aapt2 from Android Gradle Plugin 3.2 and below does not handle long paths on Windows. // Aapt2 from Android Gradle Plugin 3.2 and below does not handle long paths on Windows.
val shortenTempRootName = System.getProperty("os.name")!!.contains("Windows") val shortenTempRootName = System.getProperty("os.name")!!.contains("Windows")
// additional configuration in tasks.withType<Test> below val isTeamcityBuild = project.kotlinBuildProperties.isTeamcityBuild
projectTest("test", shortenTempRootName = shortenTempRootName) {}
projectTest("testAdvanceGradleVersion", shortenTempRootName = shortenTempRootName) { fun Test.includeMppAndAndroid(include: Boolean) {
if (isTeamcityBuild) {
val mppAndAndroidTestPatterns = listOf("*Multiplatform*", "*Mpp*", "*Android*")
val filter = if (include)
filter.includePatterns
else
filter.excludePatterns
filter.addAll(mppAndAndroidTestPatterns)
}
}
fun Test.advanceGradleVersion() {
val gradleVersionForTests = "6.3" val gradleVersionForTests = "6.3"
systemProperty("kotlin.gradle.version.for.tests", gradleVersionForTests) systemProperty("kotlin.gradle.version.for.tests", gradleVersionForTests)
} }
// additional configuration in tasks.withType<Test> below
projectTest("test", shortenTempRootName = shortenTempRootName) {
includeMppAndAndroid(false)
}
projectTest("testAdvanceGradleVersion", shortenTempRootName = shortenTempRootName) {
advanceGradleVersion()
includeMppAndAndroid(false)
}
if (isTeamcityBuild) {
projectTest("testMppAndAndroid", shortenTempRootName = shortenTempRootName) {
includeMppAndAndroid(false)
}
projectTest("testAdvanceGradleVersionMppAndAndroid", shortenTempRootName = shortenTempRootName) {
advanceGradleVersion()
includeMppAndAndroid(true)
}
}
tasks.named<Task>("check") { tasks.named<Task>("check") {
dependsOn("testAdvanceGradleVersion") dependsOn("testAdvanceGradleVersion")
if (isTeamcityBuild) {
dependsOn("testAdvanceGradleVersionMppAndAndroid")
dependsOn("testMppAndAndroid")
}
} }
gradle.taskGraph.whenReady { gradle.taskGraph.whenReady {