[Gradle] Mark some tasks with @DisableCachingByDefault
By default, tasks should opt-in for supporting build cache through marking class with @CacheableTask. However, some tasks should not be cacheable by default, as for these tasks doesn't do any heavy load. Even worse, storing and extracting tasks results from the remote cache (for example) would take more time than actual run on host machine. So these tasks are marked as @DisableCachingByDefault ^KT-59307 Verification Pending
This commit is contained in:
committed by
Space Team
parent
e59371d291
commit
182c10f77d
+2
@@ -11,6 +11,7 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.dsl.pm20Extension
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||
import org.jetbrains.kotlin.gradle.utils.doNotTrackStateCompat
|
||||
@@ -25,6 +26,7 @@ internal fun Project.locateOrRegisterIdeaKpmBuildProjectModelTask(): TaskProvide
|
||||
/**
|
||||
* Internal Task used for troubleshooting/debugging/diagnosing IdeaKpm model building.
|
||||
*/
|
||||
@DisableCachingByDefault
|
||||
internal open class IdeaKpmBuildProjectModelTask : DefaultTask() {
|
||||
|
||||
@OutputDirectory
|
||||
|
||||
+2
@@ -11,9 +11,11 @@ import org.gradle.api.tasks.Internal
|
||||
import org.gradle.api.tasks.Nested
|
||||
import org.gradle.api.tasks.OutputFile
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
||||
@DisableCachingByDefault
|
||||
abstract class GenerateProjectStructureMetadata : DefaultTask() {
|
||||
|
||||
@get:Inject
|
||||
|
||||
+2
@@ -16,6 +16,7 @@ import org.gradle.api.file.ProjectLayout
|
||||
import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.dependsOnClosureWithInterCompilationDependencies
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
@@ -50,6 +51,7 @@ internal fun Project.locateOrRegisterMetadataDependencyTransformationTask(
|
||||
return transformationTask
|
||||
}
|
||||
|
||||
@DisableCachingByDefault(because = "Metadata Dependency Transformation Task doesn't benefit from caching as it doesn't have heavy load")
|
||||
open class MetadataDependencyTransformationTask
|
||||
@Inject constructor(
|
||||
kotlinSourceSet: KotlinSourceSet,
|
||||
|
||||
+2
@@ -13,6 +13,7 @@ import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.process.ExecOperations
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
||||
@@ -221,6 +222,7 @@ private fun Project.appleFrameworkDir(frameworkSearchDir: File) =
|
||||
* To preserve these symlinks we are using the `cp` command instead.
|
||||
* See https://youtrack.jetbrains.com/issue/KT-48594.
|
||||
*/
|
||||
@DisableCachingByDefault
|
||||
@Suppress("LeakingThis") // Should be extended only by Gradle
|
||||
internal abstract class FrameworkCopy : DefaultTask() {
|
||||
|
||||
|
||||
+2
@@ -13,12 +13,14 @@ import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||
import org.jetbrains.kotlin.gradle.utils.getFile
|
||||
import org.jetbrains.kotlin.gradle.utils.onlyIfCompat
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.konan.target.Xcode
|
||||
|
||||
@DisableCachingByDefault
|
||||
internal abstract class XcodeVersionTask : DefaultTask() {
|
||||
|
||||
companion object {
|
||||
|
||||
+2
@@ -9,6 +9,7 @@ import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.gradle.work.NormalizeLineEndings
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||
@@ -18,6 +19,7 @@ import org.jetbrains.kotlin.gradle.utils.getValue
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
||||
@DisableCachingByDefault
|
||||
internal open class GradleKpmMetadataDependencyTransformationTask
|
||||
@Inject constructor(
|
||||
@get:Internal
|
||||
|
||||
+2
@@ -15,6 +15,7 @@ import org.gradle.api.tasks.Internal
|
||||
import org.gradle.api.tasks.Nested
|
||||
import org.gradle.api.tasks.OutputFile
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.cocoapodsBuildDirs
|
||||
import org.jetbrains.kotlin.gradle.utils.appendLine
|
||||
@@ -25,6 +26,7 @@ import javax.inject.Inject
|
||||
/**
|
||||
* Generates a def-file for the given CocoaPods dependency.
|
||||
*/
|
||||
@DisableCachingByDefault
|
||||
abstract class DefFileTask @Inject constructor(projectLayout: ProjectLayout) : DefaultTask() {
|
||||
|
||||
@get:Nested
|
||||
|
||||
+2
@@ -13,6 +13,7 @@ import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.cocoapodsBuildDirs
|
||||
import org.jetbrains.kotlin.gradle.utils.mapToFile
|
||||
import java.io.File
|
||||
@@ -29,6 +30,7 @@ import javax.inject.Inject
|
||||
* So we create a dummy static framework to allow CocoaPods install our pod correctly
|
||||
* and then replace it with the real one during a real build process.
|
||||
*/
|
||||
@DisableCachingByDefault
|
||||
abstract class DummyFrameworkTask @Inject constructor(projectLayout: ProjectLayout) : DefaultTask() {
|
||||
|
||||
@get:Input
|
||||
|
||||
+2
@@ -14,6 +14,7 @@ import org.gradle.api.provider.MapProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.PodspecPlatformSettings
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin
|
||||
@@ -28,6 +29,7 @@ import javax.inject.Inject
|
||||
* The task generates a podspec file which allows a user to
|
||||
* integrate a Kotlin/Native framework into a CocoaPods project.
|
||||
*/
|
||||
@DisableCachingByDefault
|
||||
abstract class PodspecTask @Inject constructor(private val projectLayout: ProjectLayout) : DefaultTask() {
|
||||
|
||||
@get:Input
|
||||
|
||||
+2
@@ -11,6 +11,7 @@ import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
@@ -110,6 +111,7 @@ private fun CInteropMetadataDependencyTransformationTask.onlyIfSourceSetIsShared
|
||||
onlyIf { isSharedCommonizerTarget }
|
||||
}
|
||||
|
||||
@DisableCachingByDefault(because = "Metadata Dependency Transformation Task doesn't benefit from caching as it doesn't have heavy load")
|
||||
internal open class CInteropMetadataDependencyTransformationTask @Inject constructor(
|
||||
@Transient @get:Internal val sourceSet: DefaultKotlinSourceSet,
|
||||
@get:OutputDirectory val outputDirectory: File,
|
||||
|
||||
+2
@@ -13,6 +13,7 @@ import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.compilerRunner.maybeCreateCommonizerClasspathConfiguration
|
||||
import org.jetbrains.kotlin.gradle.internal.isInIdeaSync
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||
@@ -160,6 +161,7 @@ internal val Project.cleanNativeDistributionCommonizerTask: TaskProvider<CleanNa
|
||||
)
|
||||
}
|
||||
|
||||
@DisableCachingByDefault
|
||||
internal abstract class CleanNativeDistributionCommonizerTask : DefaultTask() {
|
||||
@get:Inject
|
||||
abstract val fileSystemOperations: FileSystemOperations
|
||||
|
||||
+2
@@ -7,9 +7,11 @@ package org.jetbrains.kotlin.gradle.targets.native.internal
|
||||
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.gradle.work.NormalizeLineEndings
|
||||
import java.io.File
|
||||
|
||||
@DisableCachingByDefault
|
||||
internal open class CopyCommonizeCInteropForIdeTask : AbstractCInteropCommonizerTask() {
|
||||
|
||||
private val commonizeCInteropTask: TaskProvider<CInteropCommonizerTask>
|
||||
|
||||
+2
@@ -17,6 +17,7 @@ import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.Internal
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.process.ExecOperations
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
|
||||
import org.jetbrains.kotlin.compilerRunner.GradleCliCommonizer
|
||||
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCommonizerToolRunner
|
||||
@@ -34,6 +35,7 @@ import java.io.File
|
||||
import java.net.URLEncoder
|
||||
import javax.inject.Inject
|
||||
|
||||
@DisableCachingByDefault(because = "Native Distribution Commonizer Task uses internal caching mechanism with fine grained cache control")
|
||||
internal open class NativeDistributionCommonizerTask
|
||||
@Inject constructor(
|
||||
private val objectFactory: ObjectFactory,
|
||||
|
||||
+2
@@ -14,10 +14,12 @@ import org.gradle.api.provider.MapProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency
|
||||
import org.jetbrains.kotlin.gradle.targets.native.tasks.GenerateArtifactPodspecTask.ArtifactType.*
|
||||
import org.jetbrains.kotlin.gradle.utils.appendLine
|
||||
|
||||
@DisableCachingByDefault
|
||||
abstract class GenerateArtifactPodspecTask : DefaultTask() {
|
||||
|
||||
enum class ArtifactType {
|
||||
|
||||
+3
@@ -12,6 +12,7 @@ import org.gradle.api.Task
|
||||
import org.gradle.api.file.ProjectLayout
|
||||
import org.gradle.api.internal.GeneratedSubclass
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.compilerRunner.konanVersion
|
||||
import org.jetbrains.kotlin.gradle.dsl.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
@@ -85,6 +86,7 @@ internal val GradleKpmModule.buildKotlinToolingMetadataTask: TaskProvider<BuildK
|
||||
|
||||
abstract class BuildKotlinToolingMetadataTask : DefaultTask() {
|
||||
|
||||
@DisableCachingByDefault
|
||||
abstract class FromKpmModule
|
||||
@Inject constructor(
|
||||
@get:Internal
|
||||
@@ -103,6 +105,7 @@ abstract class BuildKotlinToolingMetadataTask : DefaultTask() {
|
||||
override fun buildKotlinToolingMetadata() = module.getKotlinToolingMetadata()
|
||||
}
|
||||
|
||||
@DisableCachingByDefault
|
||||
abstract class FromKotlinExtension
|
||||
@Inject constructor(
|
||||
private val projectLayout: ProjectLayout
|
||||
|
||||
Reference in New Issue
Block a user