Update AGP versions to the latest stable one.

Kotlin Gradle Plugin should run against the latest stable one versions.
This commit is contained in:
Yahor Berdnikau
2021-05-12 13:53:30 +02:00
committed by TeamCityServer
parent 73fb851864
commit aae5cc5574
8 changed files with 59 additions and 48 deletions
@@ -442,10 +442,10 @@ open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() {
get() = AGPVersion.v7_0_0 get() = AGPVersion.v7_0_0
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("6.8") get() = GradleVersionRequired.AtLeast("7.0")
override fun defaultBuildOptions(): BuildOptions { override fun defaultBuildOptions(): BuildOptions {
val javaHome = File(System.getProperty("jdk11Home")!!) val javaHome = File("/opt/openjdk-bin-11")
Assume.assumeTrue("JDK 11 should be available", javaHome.isDirectory) Assume.assumeTrue("JDK 11 should be available", javaHome.isDirectory)
return super.defaultBuildOptions().copy(javaHome = javaHome, warningMode = WarningMode.Summary) return super.defaultBuildOptions().copy(javaHome = javaHome, warningMode = WarningMode.Summary)
} }
@@ -153,7 +153,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
outputRootPaths = listOf("lib", "libJvm", "libJs").map { "$it/build" } outputRootPaths = listOf("lib", "libJvm", "libJs").map { "$it/build" }
), ),
TestCase("AndroidProject", TestCase("AndroidProject",
gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1"), gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1"),
taskToExecute = arrayOf("assembleDebug"), taskToExecute = arrayOf("assembleDebug"),
cacheableTaskNames = listOf("Lib", "Android").flatMap { module -> cacheableTaskNames = listOf("Lib", "Android").flatMap { module ->
listOf("Flavor1", "Flavor2").flatMap { flavor -> listOf("Flavor1", "Flavor2").flatMap { flavor ->
@@ -166,7 +166,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
androidGradlePluginVersion = AGPVersion.v4_2_0 androidGradlePluginVersion = AGPVersion.v4_2_0
), ),
TestCase("android-dagger", TestCase("android-dagger",
gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1"), gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1"),
taskToExecute = arrayOf("assembleDebug"), taskToExecute = arrayOf("assembleDebug"),
projectDirectoryPrefix = "kapt2", projectDirectoryPrefix = "kapt2",
cacheableTaskNames = listOf("Debug").flatMap { buildType -> cacheableTaskNames = listOf("Debug").flatMap { buildType ->
@@ -33,7 +33,7 @@ class ConfigurationAvoidanceIT : BaseGradleIT() {
fun testAndroidUnrelatedTaskNotConfigured() = with( fun testAndroidUnrelatedTaskNotConfigured() = with(
Project( Project(
"AndroidProject", "AndroidProject",
gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1") gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1")
) )
) { ) {
setupWorkingDir() setupWorkingDir()
@@ -8,12 +8,16 @@ package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.configuration.WarningMode import org.gradle.api.logging.configuration.WarningMode
import org.jetbrains.kotlin.gradle.util.AGPVersion import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.test.util.KtTestUtil import org.jetbrains.kotlin.test.util.KtTestUtil
import org.junit.Before
import org.junit.Test import org.junit.Test
class ConfigurationCacheForAndroidIT : AbstractConfigurationCacheIT() { class ConfigurationCacheForAndroidIT : AbstractConfigurationCacheIT() {
private val androidGradlePluginVersion: AGPVersion private val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v4_2_0 get() = AGPVersion.v4_2_0
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("6.7.1")
override fun defaultBuildOptions() = override fun defaultBuildOptions() =
super.defaultBuildOptions().copy( super.defaultBuildOptions().copy(
androidHome = KtTestUtil.findAndroidSdk(), androidHome = KtTestUtil.findAndroidSdk(),
@@ -24,53 +28,23 @@ class ConfigurationCacheForAndroidIT : AbstractConfigurationCacheIT() {
@Test @Test
fun testAndroidKaptProject() = with(Project("android-dagger", directoryPrefix = "kapt2")) { fun testAndroidKaptProject() = with(Project("android-dagger", directoryPrefix = "kapt2")) {
applyAndroid40Alpha4KotlinVersionWorkaround() setupWorkingDir()
projectDir.resolve("gradle.properties").appendText("\nkapt.incremental.apt=false") projectDir.resolve("gradle.properties").appendText("\nkapt.incremental.apt=false")
testConfigurationCacheOf(":app:compileDebugKotlin", ":app:kaptDebugKotlin", ":app:kaptGenerateStubsDebugKotlin") testConfigurationCacheOf(":app:compileDebugKotlin", ":app:kaptDebugKotlin", ":app:kaptGenerateStubsDebugKotlin")
} }
@Test @Test
fun testKotlinAndroidProject() = with(Project("AndroidProject")) { fun testKotlinAndroidProject() = with(Project("AndroidProject")) {
applyAndroid40Alpha4KotlinVersionWorkaround() setupWorkingDir()
testConfigurationCacheOf(":Lib:compileFlavor1DebugKotlin", ":Android:compileFlavor1DebugKotlin") testConfigurationCacheOf(":Lib:compileFlavor1DebugKotlin", ":Android:compileFlavor1DebugKotlin")
} }
@Test @Test
fun testKotlinAndroidProjectTests() = with(Project("AndroidIncrementalMultiModule")) { fun testKotlinAndroidProjectTests() = with(Project("AndroidIncrementalMultiModule")) {
applyAndroid40Alpha4KotlinVersionWorkaround() setupWorkingDir()
testConfigurationCacheOf( testConfigurationCacheOf(
":app:compileDebugAndroidTestKotlin", ":app:compileDebugUnitTestKotlin", ":app:compileDebugAndroidTestKotlin", ":app:compileDebugUnitTestKotlin",
buildOptions = defaultBuildOptions().copy(warningMode = WarningMode.Summary) buildOptions = defaultBuildOptions().copy(warningMode = WarningMode.Summary)
) )
} }
/**
* Android Gradle plugin 4.0-alpha4 depends on the EAP versions of some o.j.k modules.
* Force the current Kotlin version, so the EAP versions are not queried from the
* test project's repositories, where there's no 'kotlin-eap' repo.
* TODO remove this workaround once an Android Gradle plugin version is used that depends on the stable Kotlin version
*/
private fun Project.applyAndroid40Alpha4KotlinVersionWorkaround() {
setupWorkingDir()
val resolutionStrategyHack = """
configurations.all {
resolutionStrategy.dependencySubstitution.all { dependency ->
def requested = dependency.requested
if (requested instanceof ModuleComponentSelector && requested.group == 'org.jetbrains.kotlin') {
dependency.useTarget requested.group + ':' + requested.module + ':' + '${defaultBuildOptions().kotlinVersion}'
}
}
}
""".trimIndent()
gradleBuildScript().appendText(
"\n" + """
buildscript {
$resolutionStrategyHack
}
$resolutionStrategyHack
""".trimIndent()
)
}
} }
@@ -76,7 +76,7 @@ class Kapt3Android70IT : Kapt3AndroidIT() {
get() = AGPVersion.v7_0_0 get() = AGPVersion.v7_0_0
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("6.8") get() = GradleVersionRequired.AtLeast("7.0")
override fun defaultBuildOptions(): BuildOptions { override fun defaultBuildOptions(): BuildOptions {
val javaHome = File(System.getProperty("jdk11Home")!!) val javaHome = File(System.getProperty("jdk11Home")!!)
@@ -95,11 +95,48 @@ class Kapt3Android70IT : Kapt3AndroidIT() {
@Ignore("KT-44350") @Ignore("KT-44350")
override fun testButterKnife() = Unit override fun testButterKnife() = Unit
@Test
override fun testInterProjectIC() {
with(Project("android-inter-project-ic", directoryPrefix = "kapt2")) {
setupWorkingDir()
// includeCompileClasspath was removed in AGP 7
projectDir.resolve("app").getFileByName("build.gradle").modify { originalContent ->
originalContent
.lines()
.filter { !it.contains("javaCompileOptions") }
.joinToString(separator = "\n")
}
build("assembleDebug") {
assertSuccessful()
assertKaptSuccessful()
}
fun modifyAndCheck(utilFileName: String, useUtilFileName: String) {
val utilKt = projectDir.getFileByName(utilFileName)
utilKt.modify {
it.checkedReplace("Int", "Number")
}
build("assembleDebug") {
assertSuccessful()
val affectedFile = projectDir.getFileByName(useUtilFileName)
assertCompiledKotlinSources(
relativize(affectedFile),
tasks = listOf("app:kaptGenerateStubsDebugKotlin", "app:compileDebugKotlin")
)
}
}
modifyAndCheck("libAndroidUtil.kt", "useLibAndroidUtil.kt")
modifyAndCheck("libJvmUtil.kt", "useLibJvmUtil.kt")
}
}
} }
class Kapt3Android42IT : Kapt3BaseIT() { class Kapt3Android42IT : Kapt3BaseIT() {
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("6.7") get() = GradleVersionRequired.AtLeast("6.7.1")
override fun defaultBuildOptions(): BuildOptions = override fun defaultBuildOptions(): BuildOptions =
super.defaultBuildOptions().copy(androidGradlePluginVersion = AGPVersion.v4_2_0) super.defaultBuildOptions().copy(androidGradlePluginVersion = AGPVersion.v4_2_0)
@@ -205,7 +242,7 @@ abstract class Kapt3AndroidIT : Kapt3BaseIT() {
} }
@Test @Test
fun testInterProjectIC() = with(Project("android-inter-project-ic", directoryPrefix = "kapt2")) { open fun testInterProjectIC() = with(Project("android-inter-project-ic", directoryPrefix = "kapt2")) {
build("assembleDebug") { build("assembleDebug") {
assertSuccessful() assertSuccessful()
assertKaptSuccessful() assertKaptSuccessful()
@@ -266,7 +266,7 @@ class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() {
val project = Project( val project = Project(
projectName = "kaptIncrementalWithParceler", projectName = "kaptIncrementalWithParceler",
gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1") gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1")
).apply { ).apply {
setupWorkingDir() setupWorkingDir()
} }
@@ -1164,7 +1164,7 @@ class KotlinGradleIT : BaseGradleIT() {
fun testKtKt35942InternalsFromMainInTestViaTransitiveDepsAndroid() = with( fun testKtKt35942InternalsFromMainInTestViaTransitiveDepsAndroid() = with(
Project( Project(
projectName = "kt-35942-android", projectName = "kt-35942-android",
gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1") gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1")
) )
) { ) {
build( build(
@@ -18,10 +18,10 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) {
fun fromString(versionString: String): AGPVersion = fun fromString(versionString: String): AGPVersion =
AGPVersion(VersionNumber.parse(versionString)) AGPVersion(VersionNumber.parse(versionString))
val v3_4_1 = fromString("3.4.1") val v3_4_1 = fromString("3.4.3")
val v3_6_0 = fromString("3.6.0") val v3_6_0 = fromString("3.6.4")
val v4_1_0 = fromString("4.1.0-beta02") val v4_1_0 = fromString("4.1.3")
val v4_2_0 = fromString("4.2.0-alpha10") val v4_2_0 = fromString("4.2.0")
val v7_0_0 = fromString("7.0.0-alpha03") val v7_0_0 = fromString("7.0.0-alpha15")
} }
} }