From 9918b7a2cd9e041a2307b38c52b82e29b95a8a93 Mon Sep 17 00:00:00 2001 From: Zoriot Date: Mon, 28 Sep 2026 13:24:23 +0200 Subject: [PATCH 1/2] Fix Jenkins artifact paths and surface download failures Use Jenkins' artifact relativePath from the build API response instead of assuming every artifact is stored under an artifacts directory. This allows jobs such as Builders-Utilities to download artifacts from their actual build output location. Log the resolved download URL before transfer and report runtime failures during release preparation or download with the affected plugin name, so invalid artifact paths and other preparation errors are visible in the server log. Closes #141 --- .../pluginupdater/api/source/type/JenkinsSource.java | 5 +++-- .../lushplugins/pluginupdater/api/updater/PluginData.java | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/api/src/main/java/org/lushplugins/pluginupdater/api/source/type/JenkinsSource.java b/common/api/src/main/java/org/lushplugins/pluginupdater/api/source/type/JenkinsSource.java index be33f41b..e9c4f09d 100644 --- a/common/api/src/main/java/org/lushplugins/pluginupdater/api/source/type/JenkinsSource.java +++ b/common/api/src/main/java/org/lushplugins/pluginupdater/api/source/type/JenkinsSource.java @@ -70,11 +70,12 @@ public DownloadableRelease fetchDownloadableRelease(PluginData pluginData, Sourc .formatted(jenkinsData.artifactName()))); String fileName = artifactJson.get("fileName").getAsString(); + String relativePath = artifactJson.get("relativePath").getAsString(); return DownloadableRelease.builder() .pluginData(pluginData) .endpoint(sourceData.endpoint()) - .downloadUrl("%s/job/%s/lastSuccessfulBuild/artifact/artifacts/%s" - .formatted(jenkinsData.url(), jenkinsData.job(), fileName)) + .downloadUrl("%s/job/%s/lastSuccessfulBuild/artifact/%s" + .formatted(jenkinsData.url(), jenkinsData.job(), relativePath)) .jarName(fileName) .build(); } diff --git a/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java b/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java index 177168c7..165064b3 100644 --- a/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java +++ b/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java @@ -212,6 +212,9 @@ public boolean downloadUpdate(Path destinationDir) { } catch (IOException | InterruptedException e) { UpdaterConstants.LOGGER.log(Level.SEVERE, "Failed to download update for plugin '" + this.pluginName + "'.", e); return false; + } catch (RuntimeException e) { + UpdaterConstants.LOGGER.error("Failed to prepare or download update for plugin '{}'.", this.pluginName, e); + return false; } } From 13940e80f46396330af6e9a7678f1f5bffb28c6f Mon Sep 17 00:00:00 2001 From: Zoriot Date: Mon, 28 Sep 2026 13:58:03 +0200 Subject: [PATCH 2/2] Update common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java Co-authored-by: Oak <55620516+OakLoaf@users.noreply.github.com> --- .../org/lushplugins/pluginupdater/api/updater/PluginData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java b/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java index 165064b3..29a2ad8f 100644 --- a/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java +++ b/common/api/src/main/java/org/lushplugins/pluginupdater/api/updater/PluginData.java @@ -213,7 +213,7 @@ public boolean downloadUpdate(Path destinationDir) { UpdaterConstants.LOGGER.log(Level.SEVERE, "Failed to download update for plugin '" + this.pluginName + "'.", e); return false; } catch (RuntimeException e) { - UpdaterConstants.LOGGER.error("Failed to prepare or download update for plugin '{}'.", this.pluginName, e); + UpdaterConstants.LOGGER.log(Level.SEVERE, "Failed to prepare or download update for plugin '" + this.pluginName + "'.", e); return false; } }