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
This commit is contained in:
Sebastian Schuberth
2019-11-20 16:04:00 +01:00
committed by Ilya Goncharov
parent 2760034281
commit 4191d1d699
2 changed files with 4 additions and 0 deletions
@@ -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 }
@@ -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 }