[Gradle, JS] No additional checks of setup tasks
This commit is contained in:
committed by
TeamCityServer
parent
54d47de008
commit
eb73527b9f
+4
-4
@@ -15,8 +15,8 @@ import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmApi
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmCachesSetup
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask
|
||||
import org.jetbrains.kotlin.gradle.targets.js.yarn.Yarn
|
||||
import org.jetbrains.kotlin.gradle.tasks.internal.CleanableStore
|
||||
@@ -116,10 +116,10 @@ open class NodeJsRootExtension(@Transient val rootProject: Project) : Configurat
|
||||
}
|
||||
|
||||
internal fun executeSetup() {
|
||||
val nodeJsEnv = requireConfigured()
|
||||
if (download) {
|
||||
if (!nodeJsEnv.nodeBinDir.isDirectory) {
|
||||
nodeJsSetupTaskProvider.get().exec()
|
||||
val nodeJsSetupTask = nodeJsSetupTaskProvider.get()
|
||||
nodeJsSetupTask.actions.forEach {
|
||||
it.execute(nodeJsSetupTask)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -67,9 +67,8 @@ abstract class NodeJsSetupTask : DefaultTask() {
|
||||
}
|
||||
|
||||
init {
|
||||
@Suppress("LeakingThis")
|
||||
onlyIf {
|
||||
shouldDownload && !File(env.nodeExecutable).isFile
|
||||
shouldDownload
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -27,7 +27,8 @@ interface NpmApi {
|
||||
rootProjectVersion: String,
|
||||
logger: Logger,
|
||||
subProjects: Collection<KotlinCompilationNpmResolution>,
|
||||
resolutions: Map<String, String>
|
||||
resolutions: Map<String, String>,
|
||||
forceFullResolve: Boolean
|
||||
)
|
||||
|
||||
fun resolveRootProject(
|
||||
|
||||
+3
-1
@@ -200,7 +200,9 @@ internal class KotlinRootNpmResolver internal constructor(
|
||||
logger,
|
||||
allNpmPackages,
|
||||
yarn.resolutions
|
||||
.associate { it.path to it.toVersionString() })
|
||||
.associate { it.path to it.toVersionString() },
|
||||
forceFullResolve
|
||||
)
|
||||
|
||||
return Installation(
|
||||
projectResolutions
|
||||
|
||||
+4
-2
@@ -33,7 +33,8 @@ class Yarn : NpmApi {
|
||||
rootProjectVersion: String,
|
||||
logger: Logger,
|
||||
subProjects: Collection<KotlinCompilationNpmResolution>,
|
||||
resolutions: Map<String, String>
|
||||
resolutions: Map<String, String>,
|
||||
forceFullResolve: Boolean
|
||||
) = yarnWorkspaces
|
||||
.prepareRootProject(
|
||||
rootProject,
|
||||
@@ -42,7 +43,8 @@ class Yarn : NpmApi {
|
||||
rootProjectVersion,
|
||||
logger,
|
||||
subProjects,
|
||||
resolutions
|
||||
resolutions,
|
||||
forceFullResolve
|
||||
)
|
||||
|
||||
override fun resolveRootProject(
|
||||
|
||||
+2
-1
@@ -30,7 +30,7 @@ open class YarnPlugin : Plugin<Project> {
|
||||
val yarnRootExtension = this.extensions.create(YarnRootExtension.YARN, YarnRootExtension::class.java, this)
|
||||
val nodeJs = NodeJsRootPlugin.apply(this)
|
||||
|
||||
registerTask<YarnSetupTask>(YarnSetupTask.NAME) {
|
||||
val setupTask = registerTask<YarnSetupTask>(YarnSetupTask.NAME) {
|
||||
it.dependsOn(nodeJs.nodeJsSetupTaskProvider)
|
||||
|
||||
it.configuration = provider {
|
||||
@@ -50,6 +50,7 @@ open class YarnPlugin : Plugin<Project> {
|
||||
|
||||
tasks.named(KotlinNpmInstallTask.NAME).configure {
|
||||
it.dependsOn(rootPackageJson)
|
||||
it.dependsOn(setupTask)
|
||||
}
|
||||
|
||||
tasks.register("yarn" + CleanDataTask.NAME_SUFFIX, CleanDataTask::class.java) {
|
||||
|
||||
+7
-5
@@ -34,8 +34,10 @@ open class YarnRootExtension(
|
||||
var downloadBaseUrl by Property("https://github.com/yarnpkg/yarn/releases/download")
|
||||
var version by Property("1.22.10")
|
||||
|
||||
val yarnSetupTask: YarnSetupTask
|
||||
get() = project.tasks.getByName(YarnSetupTask.NAME) as YarnSetupTask
|
||||
val yarnSetupTaskProvider: TaskProvider<YarnSetupTask>
|
||||
get() = project.tasks
|
||||
.withType(YarnSetupTask::class.java)
|
||||
.named(YarnSetupTask.NAME)
|
||||
|
||||
val rootPackageJsonTaskProvider: TaskProvider<RootPackageJsonTask>
|
||||
get() = project.tasks
|
||||
@@ -85,9 +87,9 @@ open class YarnRootExtension(
|
||||
|
||||
internal fun executeSetup() {
|
||||
NodeJsRootPlugin.apply(project).executeSetup()
|
||||
|
||||
if (!finalizeConfiguration().home.isDirectory) {
|
||||
yarnSetupTask.setup()
|
||||
val yarnSetupTask = yarnSetupTaskProvider.get()
|
||||
yarnSetupTask.actions.forEach {
|
||||
it.execute(yarnSetupTask)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ open class YarnSetupTask : DefaultTask() {
|
||||
|
||||
@TaskAction
|
||||
fun setup() {
|
||||
logger.kotlinInfo("Using node distribution from '$yarnDist'")
|
||||
logger.kotlinInfo("Using yarn distribution from '$yarnDist'")
|
||||
|
||||
extract(yarnDist, destination.parentFile) // parent because archive contains name already
|
||||
}
|
||||
|
||||
+5
-5
@@ -5,12 +5,10 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.targets.js.yarn
|
||||
|
||||
import com.google.gson.Gson
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.gradle.internal.service.ServiceRegistry
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmApi
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
|
||||
@@ -33,10 +31,12 @@ class YarnWorkspaces : YarnBasics() {
|
||||
rootProjectVersion: String,
|
||||
logger: Logger,
|
||||
subProjects: Collection<KotlinCompilationNpmResolution>,
|
||||
resolutions: Map<String, String>
|
||||
resolutions: Map<String, String>,
|
||||
forceFullResolve: Boolean
|
||||
) {
|
||||
// check(rootProject == rootProject.rootProject)
|
||||
rootProject?.let { setup(it) }
|
||||
if (forceFullResolve) {
|
||||
rootProject?.let { setup(it) }
|
||||
}
|
||||
return prepareRootPackageJson(
|
||||
nodeJs,
|
||||
rootProjectName,
|
||||
|
||||
Reference in New Issue
Block a user