From 4191d1d6992e83d0f06f24f78914a6e18c91f97d Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Wed, 20 Nov 2019 16:04:00 +0100 Subject: [PATCH] Make NodeJsSetupTask and YarnSetupTask cacheable For users that have Gradle's build cache [1] enabled, make NodeJsSetupTask and YarnSetupTask cacheable to avoid the distribution archives being downloaded again if they have been downloaded before by other builds of other projects that apply the Kotlin plugin. [1] https://docs.gradle.org/current/userguide/build_cache.html --- .../kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt | 2 ++ .../jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt index 4e82a944e05..16bf3ab0d9a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt @@ -2,6 +2,7 @@ package org.jetbrains.kotlin.gradle.targets.js.nodejs import org.gradle.api.DefaultTask import org.gradle.api.artifacts.repositories.IvyPatternRepositoryLayout +import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction @@ -11,6 +12,7 @@ import org.jetbrains.kotlin.gradle.utils.patternLayoutCompatible import java.io.File import java.net.URI +@CacheableTask open class NodeJsSetupTask : DefaultTask() { private val settings get() = NodeJsRootPlugin.apply(project.rootProject) private val env by lazy { settings.environment } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt index c8cdeb0d3d3..066fbcabbfa 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt @@ -7,12 +7,14 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn import de.undercouch.gradle.tasks.download.DownloadAction import org.gradle.api.DefaultTask +import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import java.io.File +@CacheableTask open class YarnSetupTask : DefaultTask() { private val settings = project.yarn private val env by lazy { settings.environment }