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