[Gradle] Use proper approach to local repository

^KT-65528 In Progress
This commit is contained in:
Yahor Berdnikau
2024-02-02 23:03:53 +01:00
committed by Space Team
parent eac48d065b
commit ad5ee28d58
4 changed files with 43 additions and 13 deletions
@@ -9,9 +9,11 @@ import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.testbase.*
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.extension.ExtensionContext
import org.junit.jupiter.api.io.TempDir
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.ArgumentsSource
import java.nio.file.Path
import java.util.stream.Stream
import java.util.zip.ZipFile
import kotlin.io.path.deleteIfExists
@@ -29,8 +31,13 @@ internal class HierarchicalStructureOptInMigrationArtifactContentMppIT : KGPBase
fun testArtifactFormatAndContent(
gradleVersion: GradleVersion,
hmppMode: Mode,
@TempDir localRepository: Path,
) {
project("new-mpp-published", gradleVersion) {
project(
projectName = "new-mpp-published",
gradleVersion = gradleVersion,
localRepoDir = localRepository,
) {
gradleProperties.deleteIfExists()
val hierarchicalStructureFlag = when (hmppMode) {
@@ -52,7 +59,7 @@ internal class HierarchicalStructureOptInMigrationArtifactContentMppIT : KGPBase
).toTypedArray()
) {
val metadataJarEntries = ZipFile(
projectPath.resolve("../repo/com/example/bar/my-lib-bar/1.0/my-lib-bar-1.0.jar").toFile()
localRepository.resolve("com/example/bar/my-lib-bar/1.0/my-lib-bar-1.0.jar").toFile()
).use { zip ->
zip.entries().asSequence().toList().map { it.name }
}
@@ -14,6 +14,8 @@ import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.tooling.KotlinToolingMetadata
import org.jetbrains.kotlin.tooling.parseJsonOrThrow
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.io.TempDir
import java.nio.file.Path
import kotlin.io.path.appendText
import kotlin.io.path.readText
import kotlin.test.assertEquals
@@ -31,9 +33,14 @@ class KotlinToolingMetadataMppIT : KGPBaseTest() {
@GradleTest
@DisplayName("Check published metadata contains right data")
fun checkPublishedMetadata(
gradleVersion: GradleVersion
gradleVersion: GradleVersion,
@TempDir localRepository: Path,
) {
project("new-mpp-published", gradleVersion) {
project(
projectName = "new-mpp-published",
gradleVersion = gradleVersion,
localRepoDir = localRepository
) {
build("publish") {
assertTasksExecuted(":$buildKotlinToolingMetadataTaskName")
@@ -53,8 +60,8 @@ class KotlinToolingMetadataMppIT : KGPBaseTest() {
)
/* Check metadata file in published repository */
val publishedMetadataJson = projectPath.parent.resolve(
"repo/com/example/bar/my-lib-bar/1.0/my-lib-bar-1.0-kotlin-tooling-metadata.json"
val publishedMetadataJson = localRepository.resolve(
"com/example/bar/my-lib-bar/1.0/my-lib-bar-1.0-kotlin-tooling-metadata.json"
).readText()
assertEquals(
@@ -88,8 +95,13 @@ class KotlinToolingMetadataMppIT : KGPBaseTest() {
@DisplayName("KotlinToolingMetadata should be not published when disabled")
fun checkPublishingWithKotlinToolingMetadataArtifactDisabled(
gradleVersion: GradleVersion,
@TempDir localRepository: Path,
) {
project("new-mpp-published", gradleVersion) {
project(
projectName = "new-mpp-published",
gradleVersion = gradleVersion,
localRepoDir = localRepository
) {
gradleProperties.appendText("\nkotlin.mpp.enableKotlinToolingMetadataArtifact=false")
build("publish") {
assertFileNotExists(defaultKotlinToolingMetadataJsonPath)
@@ -101,9 +113,14 @@ class KotlinToolingMetadataMppIT : KGPBaseTest() {
@GradleTest
@DisplayName("KotlinToolingMetadata tasks are avaialbe in Kotlin JS browser project")
fun tasksAreAvailableInKotlinJsBrowser(
gradleVersion: GradleVersion
gradleVersion: GradleVersion,
@TempDir localRepository: Path
) {
project("kotlin-js-browser-project", gradleVersion) {
project(
projectName = "kotlin-js-browser-project",
gradleVersion = gradleVersion,
localRepoDir = localRepository
) {
build(buildKotlinToolingMetadataTaskName) {
assertTasksExecuted(":app:$buildKotlinToolingMetadataTaskName")
assertTasksExecuted(":base:$buildKotlinToolingMetadataTaskName")
@@ -14,6 +14,8 @@ import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.util.parseCompilerArgumentsFromBuildOutput
import org.jetbrains.kotlin.konan.target.HostManager
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.io.TempDir
import java.nio.file.Path
import kotlin.io.path.appendText
@DisplayName("'kotlin.experimental.tryNext' option")
@@ -162,10 +164,14 @@ class TryNextIT : KGPBaseTest() {
@DisplayName("MPP: language version default is changed to next")
@MppGradlePluginTests
@GradleTest
fun languageVersionChangedMpp(gradleVersion: GradleVersion) {
fun languageVersionChangedMpp(
gradleVersion: GradleVersion,
@TempDir localRepository: Path,
) {
project(
"new-mpp-published",
gradleVersion,
localRepoDir = localRepository,
buildOptions = defaultBuildOptions.copy(logLevel = LogLevel.DEBUG)
) {
enableTryNext()
@@ -349,5 +355,5 @@ class TryNextIT : KGPBaseTest() {
""".trimMargin()
)
private val nextKotlinLanguageVersion = KotlinVersion.values().first { it > KotlinVersion.DEFAULT }.version
private val nextKotlinLanguageVersion = KotlinVersion.entries.first { it > KotlinVersion.DEFAULT }.version
}
@@ -5,7 +5,7 @@ plugins {
repositories {
mavenLocal()
maven("../repo")
maven("<localRepo>")
mavenCentral()
}
@@ -90,6 +90,6 @@ kotlin {
publishing {
repositories {
maven("../repo")
maven("<localRepo>")
}
}