From 9509c9b22dfb268c5c8cf65ae9a86eefa4e40a25 Mon Sep 17 00:00:00 2001 From: "Vladislav.Yaroshchuk" Date: Tue, 26 Nov 2024 18:12:29 +0400 Subject: [PATCH] [build-scripts] Do not write `plugins.xml` if the plugins list is empty This fixes an exception ``` 'non_bundled_plugins' build step failed: java.nio.file.NoSuchFileException: /mnt/agent/work/89e70edcf4afcfd6/out/idea-ue/artifacts/IU-plugins/auto-uploading/plugins.xml ``` thrown from `generatePluginRepositoryMetaFile` GitOrigin-RevId: ec76222f5d024dafb9b41b6040be71fd43055681 --- .../intellij/build/impl/DistributionJARsBuilder.kt | 10 ++++++++-- .../build/impl/PluginRepositoryXmlGenerator.kt | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt index 89d3821ed43b..94fb76859886 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt @@ -471,8 +471,14 @@ internal suspend fun buildNonBundledPlugins( if (prepareCustomPluginRepository) { val list = pluginSpecs.sortedBy { it.pluginZip } - generatePluginRepositoryMetaFile(list, context.nonBundledPlugins, context) - generatePluginRepositoryMetaFile(list.filter { it.pluginZip.startsWith(context.nonBundledPluginsToBePublished) }, context.nonBundledPluginsToBePublished, context) + if (list.isNotEmpty()) { + generatePluginRepositoryMetaFile(list, context.nonBundledPlugins, context) + } + + val pluginsToBePublished = list.filter { it.pluginZip.startsWith(context.nonBundledPluginsToBePublished) } + if (pluginsToBePublished.isNotEmpty()) { + generatePluginRepositoryMetaFile(pluginsToBePublished, context.nonBundledPluginsToBePublished, context) + } } validatePlugins(context, pluginSpecs) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginRepositoryXmlGenerator.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginRepositoryXmlGenerator.kt index 9b7c48d5b9fb..5cf64dcb70a1 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginRepositoryXmlGenerator.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PluginRepositoryXmlGenerator.kt @@ -14,11 +14,13 @@ import java.util.* import kotlin.io.path.createDirectories internal fun generatePluginRepositoryMetaFile(pluginSpecs: List, targetDir: Path, context: BuildContext): Path { + require(pluginSpecs.isNotEmpty()) val categories = TreeMap>() for (spec in pluginSpecs) { val p = readPlugin(spec.pluginZip, spec.pluginXml, context.buildNumber, targetDir) categories.computeIfAbsent(p.category) { mutableListOf() }.add(p) } + Files.createDirectories(targetDir) val result = targetDir.resolve("plugins.xml") writePluginsXml(result, categories) return result