From 35e39e9e10f197cb226b75773c6bc3e3418f61a3 Mon Sep 17 00:00:00 2001 From: "Alexander.Likhachev" Date: Tue, 31 Jan 2023 21:24:13 +0100 Subject: [PATCH] [Gradle] Ignore non-existent directories in compile task outputs backup #KT-56047 Fixed --- .../jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt index 704b3ea78d1..9d2cd1d770e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt @@ -48,6 +48,9 @@ internal class TaskOutputsBackup( snapshotFile, outputPath ) + } else if (!outputPath.exists()) { + logger.debug("Ignoring $outputPath in making a backup as it does not exist") + File(snapshotsDir.get().asFile, index.asNotExistsMarkerFile).createNewFile() } else { val snapshotFile = snapshotsDir.map { it.file(index.asSnapshotDirectoryName).asFile } logger.debug("Copying $outputPath as $snapshotFile to make a backup") @@ -72,6 +75,8 @@ internal class TaskOutputsBackup( spec.from(snapshotDir) spec.into(outputPath.parentFile) } + } else if (snapshotsDir.get().file(index.asNotExistsMarkerFile).asFile.exists()) { + // do nothing } else { val snapshotArchive = snapshotsDir.get().file(index.asSnapshotArchiveName).asFile logger.debug("Unpacking $snapshotArchive into $outputPath to restore from backup") @@ -153,6 +158,9 @@ internal class TaskOutputsBackup( private val Int.asSnapshotArchiveName: String get() = "$this.zip" + private val Int.asNotExistsMarkerFile: String + get() = "$this.not-exists" + private val Int.asSnapshotDirectoryName: String get() = "$this" }