From 0a0d257320cc038c341ec0827865c07eaea8d4b3 Mon Sep 17 00:00:00 2001 From: Jerome Prinet Date: Fri, 1 Jul 2022 10:49:37 +0200 Subject: [PATCH 1/3] Use isUnix from Jenkins API --- src/main/java/hudson/FilePathUtil.java | 12 ------------ .../injection/MavenBuildScanInjection.java | 16 ++++++++++------ 2 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 src/main/java/hudson/FilePathUtil.java diff --git a/src/main/java/hudson/FilePathUtil.java b/src/main/java/hudson/FilePathUtil.java deleted file mode 100644 index ef3754c9..00000000 --- a/src/main/java/hudson/FilePathUtil.java +++ /dev/null @@ -1,12 +0,0 @@ -package hudson; - -/** - * Utility class to access protected method from FilePath - */ -public class FilePathUtil { - - public static boolean isUnix(FilePath path){ - return path.isUnix(); - } - -} diff --git a/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java b/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java index ad372aa4..17b0fc0e 100644 --- a/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java +++ b/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java @@ -2,7 +2,7 @@ import hudson.EnvVars; import hudson.FilePath; -import hudson.FilePathUtil; +import hudson.model.Computer; import hudson.model.Node; import hudson.slaves.EnvironmentVariablesNodeProperty; import jenkins.model.Jenkins; @@ -71,7 +71,7 @@ public void inject(Node node, EnvVars envGlobal, EnvVars envComputer) { private void injectMavenExtension(Node node, FilePath rootPath) { try { - String cp = constructExtClasspath(rootPath); + String cp = constructExtClasspath(rootPath, isUnix(node)); List mavenOptsKeyValuePairs = new ArrayList<>(); mavenOptsKeyValuePairs.add(asSystemProperty(MAVEN_EXT_CLASS_PATH_PROPERTY_KEY, cp)); mavenOptsKeyValuePairs.add(asSystemProperty(GRADLE_SCAN_UPLOAD_IN_BACKGROUND_PROPERTY_KEY, "false")); @@ -88,6 +88,10 @@ private void injectMavenExtension(Node node, FilePath rootPath) { } } + private boolean isUnix(Node node) { + Computer computer = node.toComputer(); + return computer == null || Boolean.TRUE.equals(computer.isUnix()); + } private void removeMavenExtension(Node node, FilePath rootPath) { try { @@ -99,17 +103,17 @@ private void removeMavenExtension(Node node, FilePath rootPath) { } } - private String constructExtClasspath(FilePath rootPath) throws IOException, InterruptedException { + private String constructExtClasspath(FilePath rootPath, boolean isUnix) throws IOException, InterruptedException { List libs = new LinkedList<>(); libs.add(copyResourceToAgent(GE_MVN_LIB_NAME, rootPath)); if (getGlobalEnvVar(GE_CCUD_VERSION_VAR) != null) { libs.add(copyResourceToAgent(CCUD_LIB_NAME, rootPath)); } - return libs.stream().map(FilePath::getRemote).collect(Collectors.joining(getDelimiter(rootPath))); + return libs.stream().map(FilePath::getRemote).collect(Collectors.joining(getDelimiter(isUnix))); } - private String getDelimiter(FilePath path) { - return FilePathUtil.isUnix(path) ? ":" : ";"; + private String getDelimiter(boolean isUnix) { + return isUnix ? ":" : ";"; } private String getGlobalEnvVar(String varName) { From d7841cbcd2173ffee3db654d29f3cb7a464d33b1 Mon Sep 17 00:00:00 2001 From: Jerome Prinet Date: Fri, 1 Jul 2022 10:50:30 +0200 Subject: [PATCH 2/3] Align Maven extension version with dependency --- .../plugins/gradle/injection/MavenBuildScanInjection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java b/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java index 17b0fc0e..1a5b8cf8 100644 --- a/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java +++ b/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java @@ -21,7 +21,7 @@ public class MavenBuildScanInjection implements BuildScanInjection { private static final Logger LOGGER = Logger.getLogger(MavenBuildScanInjection.class.getName()); private static final String LIB_DIR_PATH = "jenkins-gradle-plugin/lib"; - private static final String GE_MVN_LIB_NAME = "gradle-enterprise-maven-extension-1.14.2.jar"; + private static final String GE_MVN_LIB_NAME = "gradle-enterprise-maven-extension-1.14.3.jar"; private static final String CCUD_LIB_NAME = "common-custom-user-data-maven-extension-1.10.1.jar"; // Maven system properties passed on the CLI to a Maven build private static final String GRADLE_ENTERPRISE_URL_PROPERTY_KEY = "gradle.enterprise.url"; From 73c198f58524c3ccb113f06a02a8846ee4fbbd5b Mon Sep 17 00:00:00 2001 From: Jerome Prinet Date: Fri, 1 Jul 2022 10:50:30 +0200 Subject: [PATCH 3/3] Sync configuration changes --- .../BuildScanInjectionGradleIntegrationTest.groovy | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/test/groovy/hudson/plugins/gradle/injection/BuildScanInjectionGradleIntegrationTest.groovy b/src/test/groovy/hudson/plugins/gradle/injection/BuildScanInjectionGradleIntegrationTest.groovy index d081601c..0281f4df 100644 --- a/src/test/groovy/hudson/plugins/gradle/injection/BuildScanInjectionGradleIntegrationTest.groovy +++ b/src/test/groovy/hudson/plugins/gradle/injection/BuildScanInjectionGradleIntegrationTest.groovy @@ -163,8 +163,8 @@ task hello { j.jenkins.globalNodeProperties.add(nodeProperty) - // trigger BuildScanInjectionListener.onConfigurationChange() - j.createSlave() + // sync changes + restartSlave(slave) } private void disableBuildInjection(DumbSlave slave, String gradleVersion) { @@ -176,8 +176,12 @@ task hello { j.jenkins.globalNodeProperties.clear() j.jenkins.globalNodeProperties.add(nodeProperty) - // trigger BuildScanInjectionListener.onConfigurationChange() - j.createSlave() + // sync changes + restartSlave(slave) } + private void restartSlave(DumbSlave slave) { + j.disconnectSlave(slave) + j.waitOnline(slave) + } }