[Gradle, Wasm] Fix mismatch report message for upgradeLockFile

^KT-65870 fixed
This commit is contained in:
Ilya Goncharov
2024-02-19 17:34:40 +04:00
committed by Space Team
parent 8365915b3f
commit eabd2f0fc7
5 changed files with 30 additions and 16 deletions
@@ -12,15 +12,10 @@ import org.gradle.testkit.runner.BuildResult
import org.gradle.util.GradleVersion import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution
import org.jetbrains.kotlin.gradle.targets.js.ir.KLIB_TYPE import org.jetbrains.kotlin.gradle.targets.js.ir.KLIB_TYPE
import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask
import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.PACKAGE_LOCK_MISMATCH_MESSAGE
import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.RESTORE_PACKAGE_LOCK_NAME
import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.STORE_PACKAGE_LOCK_NAME
import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.UPGRADE_PACKAGE_LOCK import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.UPGRADE_PACKAGE_LOCK
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin
import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_6 import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_6
import org.jetbrains.kotlin.gradle.util.replaceText import org.jetbrains.kotlin.gradle.util.replaceText
@@ -43,6 +43,8 @@ class NpmGradlePluginIT : PackageManagerGradlePluginIT() {
override val lockFileName: String = LockCopyTask.PACKAGE_LOCK override val lockFileName: String = LockCopyTask.PACKAGE_LOCK
override val setProperty: (String) -> String = { ".set($it)" } override val setProperty: (String) -> String = { ".set($it)" }
override val mismatchReportMessage: String = PACKAGE_LOCK_MISMATCH_MESSAGE
} }
class YarnGradlePluginIT : PackageManagerGradlePluginIT() { class YarnGradlePluginIT : PackageManagerGradlePluginIT() {
@@ -69,6 +71,8 @@ class YarnGradlePluginIT : PackageManagerGradlePluginIT() {
override val lockFileName: String = LockCopyTask.YARN_LOCK override val lockFileName: String = LockCopyTask.YARN_LOCK
override val setProperty: (String) -> String = { " = $it" } override val setProperty: (String) -> String = { " = $it" }
override val mismatchReportMessage: String = YarnPlugin.YARN_LOCK_MISMATCH_MESSAGE
} }
@JsGradlePluginTests @JsGradlePluginTests
@@ -98,6 +102,8 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() {
abstract val setProperty: (String) -> String abstract val setProperty: (String) -> String
abstract val mismatchReportMessage: String
override val defaultBuildOptions: BuildOptions override val defaultBuildOptions: BuildOptions
get() = super.defaultBuildOptions.copy( get() = super.defaultBuildOptions.copy(
jsOptions = super.defaultBuildOptions.jsOptions?.copy( jsOptions = super.defaultBuildOptions.jsOptions?.copy(
@@ -247,7 +253,7 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() {
assertTasksExecuted(":$restoreTaskName") assertTasksExecuted(":$restoreTaskName")
assertTasksExecuted(":$storeTaskName") assertTasksExecuted(":$storeTaskName")
assertOutputContains(PACKAGE_LOCK_MISMATCH_MESSAGE) assertOutputContains(mismatchReportMessage)
} }
build(upgradeTaskName) { build(upgradeTaskName) {
@@ -276,7 +282,7 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() {
assertTasksExecuted(":$restoreTaskName") assertTasksExecuted(":$restoreTaskName")
assertTasksExecuted(":$storeTaskName") assertTasksExecuted(":$storeTaskName")
assertOutputDoesNotContain(PACKAGE_LOCK_MISMATCH_MESSAGE) assertOutputDoesNotContain(mismatchReportMessage)
} }
build(upgradeTaskName) { build(upgradeTaskName) {
@@ -312,7 +318,7 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() {
assertTasksSkipped(":$restoreTaskName") assertTasksSkipped(":$restoreTaskName")
assertTasksExecuted(":$storeTaskName") assertTasksExecuted(":$storeTaskName")
assertOutputDoesNotContain(PACKAGE_LOCK_MISMATCH_MESSAGE) assertOutputDoesNotContain(mismatchReportMessage)
} }
buildGradleKts.modify { buildGradleKts.modify {
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm
import org.gradle.api.GradleException import org.gradle.api.GradleException
import org.gradle.api.provider.Property import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.jetbrains.kotlin.gradle.utils.contentEquals import org.jetbrains.kotlin.gradle.utils.contentEquals
@@ -22,6 +23,10 @@ abstract class LockStoreTask : LockCopyTask() {
@get:Input @get:Input
abstract val lockFileAutoReplace: Property<Boolean> abstract val lockFileAutoReplace: Property<Boolean>
@get:Internal
internal open val mismatchMessage: String
get() = PACKAGE_LOCK_MISMATCH_MESSAGE
override fun copy() { override fun copy() {
val outputFile = outputDirectory.get().asFile.resolve(fileName.get()) val outputFile = outputDirectory.get().asFile.resolve(fileName.get())
@@ -49,9 +54,9 @@ abstract class LockStoreTask : LockCopyTask() {
when (lockFileMismatchReport.get()) { when (lockFileMismatchReport.get()) {
LockFileMismatchReport.NONE -> {} LockFileMismatchReport.NONE -> {}
LockFileMismatchReport.WARNING -> { LockFileMismatchReport.WARNING -> {
logger.warn(PACKAGE_LOCK_MISMATCH_MESSAGE) logger.warn(mismatchMessage)
} }
LockFileMismatchReport.FAIL -> throw GradleException(PACKAGE_LOCK_MISMATCH_MESSAGE) LockFileMismatchReport.FAIL -> throw GradleException(mismatchMessage)
else -> error("Unknown mismatch report kind") else -> error("Unknown mismatch report kind")
} }
} }
@@ -11,20 +11,27 @@ import org.gradle.work.DisableCachingByDefault
import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask
import org.jetbrains.kotlin.gradle.targets.js.npm.LockFileMismatchReport import org.jetbrains.kotlin.gradle.targets.js.npm.LockFileMismatchReport
import org.jetbrains.kotlin.gradle.targets.js.npm.LockStoreTask import org.jetbrains.kotlin.gradle.targets.js.npm.LockStoreTask
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin.Companion.YARN_LOCK_MISMATCH_MESSAGE
@DisableCachingByDefault @DisableCachingByDefault
abstract class YarnLockCopyTask : LockCopyTask() abstract class YarnLockCopyTask : LockCopyTask()
@DisableCachingByDefault @DisableCachingByDefault
abstract class YarnLockStoreTask : LockStoreTask() { abstract class YarnLockStoreTask : LockStoreTask() {
@Internal @get:Internal
val yarnLockMismatchReport: Provider<YarnLockMismatchReport> = lockFileMismatchReport.map { it.fromLockFileMismatchReport() } val yarnLockMismatchReport: Provider<YarnLockMismatchReport>
get() = lockFileMismatchReport.map { it.fromLockFileMismatchReport() }
@Internal @get:Internal
val reportNewYarnLock: Provider<Boolean> = reportNewLockFile val reportNewYarnLock: Provider<Boolean>
get() = reportNewLockFile
@Internal @get:Internal
val yarnLockAutoReplace: Provider<Boolean> = lockFileAutoReplace val yarnLockAutoReplace: Provider<Boolean>
get() = lockFileAutoReplace
override val mismatchMessage: String
get() = YARN_LOCK_MISMATCH_MESSAGE
} }
enum class YarnLockMismatchReport { enum class YarnLockMismatchReport {
@@ -118,5 +118,6 @@ open class YarnPlugin : Plugin<Project> {
const val STORE_YARN_LOCK_NAME = "kotlinStoreYarnLock" const val STORE_YARN_LOCK_NAME = "kotlinStoreYarnLock"
const val RESTORE_YARN_LOCK_NAME = "kotlinRestoreYarnLock" const val RESTORE_YARN_LOCK_NAME = "kotlinRestoreYarnLock"
const val UPGRADE_YARN_LOCK = "kotlinUpgradeYarnLock" const val UPGRADE_YARN_LOCK = "kotlinUpgradeYarnLock"
const val YARN_LOCK_MISMATCH_MESSAGE = "Lock file was changed. Run the `${UPGRADE_YARN_LOCK}` task to actualize lock file"
} }
} }