[Gradle] Xcode version too high warning

Adds new warning diagnostic that checks that selected Xcode version is not higher than latest tested with the current Kotlin version

^KT-62373 Verification Pending
This commit is contained in:
Artem Daugel-Dauge
2024-01-15 10:02:26 +01:00
committed by Space Team
parent e822375461
commit fff5a412ec
21 changed files with 199 additions and 95 deletions
@@ -7,7 +7,9 @@ package org.jetbrains.kotlin.gradle.native
import org.gradle.api.JavaVersion
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle
import org.jetbrains.kotlin.gradle.util.replaceText
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.OS
@@ -19,7 +21,7 @@ import kotlin.io.path.*
@OsCondition(supportedOn = [OS.MAC], enabledOnCI = [OS.MAC])
@DisplayName("Tests for K/N with Apple Framework")
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0)
@GradleTestVersions(minVersion = Gradle.G_7_0)
@NativeGradlePluginTests
class AppleFrameworkIT : KGPBaseTest() {
@@ -576,6 +578,23 @@ class AppleFrameworkIT : KGPBaseTest() {
}
}
}
// Should always be green because the CI Xcode version must be supported
@DisplayName("Xcode version too high diagnostic isn't emitted")
@GradleTest
@GradleTestVersions(minVersion = Gradle.G_7_4)
fun testXcodeVersionTooHighDiagnosticNotEmitted(gradleVersion: GradleVersion) {
nativeProject(
"sharedAppleFramework",
gradleVersion,
// enable CC to make sure that external process isn't run during configuration
buildOptions = defaultBuildOptions.copy(configurationCache = true),
) {
build(":shared:linkReleaseFrameworkIosSimulatorArm64") {
assertNoDiagnostic(KotlinToolingDiagnostics.XcodeVersionTooHighWarning)
}
}
}
}
private val GradleProject.darwinBuildProductsDir: Path
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle.native
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.targets.native.cocoapods.CocoapodsPluginDiagnostics
import org.junit.jupiter.api.DisplayName
@@ -47,6 +48,8 @@ class AppleFrameworkNonMacIT : KGPBaseTest() {
assertTasksSkipped(":shared:linkDebugFrameworkWatchosX64")
assertTasksSkipped(":shared:assembleDebugWatchosFatFrameworkForSharedXCFramework")
assertTasksSkipped(":shared:assembleSharedDebugXCFramework")
assertNoDiagnostic(KotlinToolingDiagnostics.XcodeVersionTooHighWarning)
}
}
}