[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
This commit is contained in:
Vladislav.Yaroshchuk
2024-11-26 16:15:14 +00:00
committed by intellij-monorepo-bot
parent 55e3683e99
commit 9509c9b22d
2 changed files with 10 additions and 2 deletions
@@ -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)
@@ -14,11 +14,13 @@ import java.util.*
import kotlin.io.path.createDirectories
internal fun generatePluginRepositoryMetaFile(pluginSpecs: List<PluginRepositorySpec>, targetDir: Path, context: BuildContext): Path {
require(pluginSpecs.isNotEmpty())
val categories = TreeMap<String, MutableList<Plugin>>()
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