From f06cc0c814722f05b7568bd7e7a898c7b61fe427 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 21 Nov 2024 13:20:36 +0100 Subject: [PATCH] Aggiunto parametro StartsIn per cambiare cartella prima dell'avvio della build --- pom.xml | 2 +- ...BuildStep.java => PBAutoBuildBuilder.java} | 31 +++++++++---------- .../plugins/sample/PBAutoBuildExecution.java | 17 ++++++++-- .../sample/PBAutoBuildInstallation.java | 6 ++-- .../sample/PBAutoBuildBuilder/config.jelly | 5 ++- 5 files changed, 37 insertions(+), 24 deletions(-) rename src/main/java/io/jenkins/plugins/sample/{PBAutoBuildStep.java => PBAutoBuildBuilder.java} (80%) diff --git a/pom.xml b/pom.xml index 53aad84..c1fdf92 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ - 1.0.26 + 1.0.27 -SNAPSHOT diff --git a/src/main/java/io/jenkins/plugins/sample/PBAutoBuildStep.java b/src/main/java/io/jenkins/plugins/sample/PBAutoBuildBuilder.java similarity index 80% rename from src/main/java/io/jenkins/plugins/sample/PBAutoBuildStep.java rename to src/main/java/io/jenkins/plugins/sample/PBAutoBuildBuilder.java index 58d7fd4..cba5c74 100644 --- a/src/main/java/io/jenkins/plugins/sample/PBAutoBuildStep.java +++ b/src/main/java/io/jenkins/plugins/sample/PBAutoBuildBuilder.java @@ -8,22 +8,18 @@ import hudson.tasks.Builder; import hudson.tools.ToolInstallation; import jenkins.tasks.SimpleBuildStep; import org.jenkinsci.Symbol; -import org.jenkinsci.plugins.workflow.steps.Step; -import org.jenkinsci.plugins.workflow.steps.StepContext; -import org.jenkinsci.plugins.workflow.steps.StepDescriptor; -import org.jenkinsci.plugins.workflow.steps.StepExecution; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; -public class PBAutoBuildStep extends Builder implements SimpleBuildStep { +public class PBAutoBuildBuilder extends Builder implements SimpleBuildStep { /** * GUI fields */ private String pbAutoBuildName; + private String startsIn; private String cmdLineArgs; @@ -35,7 +31,7 @@ public class PBAutoBuildStep extends Builder implements SimpleBuildStep { * @param cmdLineArgs Whitespace separated list of command line arguments for pb autobuild utility */ @DataBoundConstructor - public PBAutoBuildStep(String pbAutoBuildName, String cmdLineArgs) { + public PBAutoBuildBuilder(String pbAutoBuildName, String cmdLineArgs) { this.pbAutoBuildName = pbAutoBuildName; this.cmdLineArgs = cmdLineArgs; } @@ -58,6 +54,15 @@ public class PBAutoBuildStep extends Builder implements SimpleBuildStep { this.cmdLineArgs = cmdLineArgs; } + public String getStartsIn() { + return startsIn; + } + + @DataBoundSetter + public PBAutoBuildBuilder setStartsIn(String startsIn) { + this.startsIn = startsIn; + return this; + } @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { @@ -75,18 +80,10 @@ public class PBAutoBuildStep extends Builder implements SimpleBuildStep { pbAutoBuildExecution.setDescriptor(getDescriptor()); pbAutoBuildExecution.setPbAutoBuildName(getPbAutoBuildName()); pbAutoBuildExecution.setCmdLineArgs(getCmdLineArgs()); + pbAutoBuildExecution.setStartsIn(getStartsIn()); pbAutoBuildExecution.start(); } -// @Override -// public StepExecution start(StepContext context) throws Exception { -// final PBAutoBuildExecution pbAutoBuildExecution = new PBAutoBuildExecution(this, context); -// pbAutoBuildExecution.setDescriptor(getDescriptor()); -// pbAutoBuildExecution.setPbAutoBuildName(getPbAutoBuildName()); -// pbAutoBuildExecution.setCmdLineArgs(getCmdLineArgs()); -// return pbAutoBuildExecution; -// } - @Extension @Symbol("pbautobuild") @@ -96,7 +93,7 @@ public class PBAutoBuildStep extends Builder implements SimpleBuildStep { private volatile PBAutoBuildInstallation[] installations = new PBAutoBuildInstallation[0]; public DescriptorImpl() { - super(PBAutoBuildStep.class); + super(PBAutoBuildBuilder.class); load(); } diff --git a/src/main/java/io/jenkins/plugins/sample/PBAutoBuildExecution.java b/src/main/java/io/jenkins/plugins/sample/PBAutoBuildExecution.java index b0c8fb2..9a34100 100644 --- a/src/main/java/io/jenkins/plugins/sample/PBAutoBuildExecution.java +++ b/src/main/java/io/jenkins/plugins/sample/PBAutoBuildExecution.java @@ -1,11 +1,13 @@ package io.jenkins.plugins.sample; +import com.iwombat.util.StringUtil; import hudson.*; import hudson.model.Descriptor; import hudson.model.Result; import hudson.model.Run; import hudson.model.TaskListener; import hudson.util.ArgumentListBuilder; +import org.apache.commons.lang.StringUtils; import org.jenkinsci.plugins.workflow.steps.*; import java.io.IOException; @@ -18,13 +20,14 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl { private Descriptor descriptor; private String pbAutoBuildName; + private String startsIn; private String cmdLineArgs; private final Run build; private final EnvVars envVars; private final Launcher launcher; private final TaskListener listener; - private final FilePath workspace; + private FilePath workspace; public PBAutoBuildExecution(Run build, EnvVars envVars, Launcher launcher, TaskListener listener,FilePath workspace) { this.build = build; @@ -83,6 +86,11 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl { args.add(tokenizeArgs(ai.getDefaultArgs())); } + if(startsIn != null && !(startsIn.isEmpty() || startsIn.isBlank())) { + workspace = workspace.child(startsIn); + //args.prepend(String.format("cd \"%s\" && ", startsIn)); + } + // Aggiungi gli argomenti personalizzati (se presenti) String normalizedArgs = cmdLineArgs.replaceAll("[\t\r\n]+", " "); normalizedArgs = Util.replaceMacro(normalizedArgs, envVars); @@ -144,7 +152,7 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl { } public PBAutoBuildInstallation getPBAutoBuild() { - PBAutoBuildStep.DescriptorImpl descriptor = (PBAutoBuildStep.DescriptorImpl) getDescriptor(); + PBAutoBuildBuilder.DescriptorImpl descriptor = (PBAutoBuildBuilder.DescriptorImpl) getDescriptor(); for (PBAutoBuildInstallation i : descriptor.getInstallations()) { if (pbAutoBuildName != null && i.getName().equals(pbAutoBuildName)) return i; @@ -217,4 +225,9 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl { this.cmdLineArgs = cmdLineArgs; return this; } + + public PBAutoBuildExecution setStartsIn(String startsIn) { + this.startsIn = startsIn; + return this; + } } diff --git a/src/main/java/io/jenkins/plugins/sample/PBAutoBuildInstallation.java b/src/main/java/io/jenkins/plugins/sample/PBAutoBuildInstallation.java index c228329..2ec83a4 100644 --- a/src/main/java/io/jenkins/plugins/sample/PBAutoBuildInstallation.java +++ b/src/main/java/io/jenkins/plugins/sample/PBAutoBuildInstallation.java @@ -87,10 +87,10 @@ public final class PBAutoBuildInstallation extends ToolInstallation implements N getDescriptor().setInstallations(installations); } - private PBAutoBuildStep.DescriptorImpl getDescriptor() { + private PBAutoBuildBuilder.DescriptorImpl getDescriptor() { Jenkins jenkins = Jenkins.getInstanceOrNull(); - if (jenkins != null && jenkins.getDescriptorByType(PBAutoBuildStep.DescriptorImpl.class) != null) { - return jenkins.getDescriptorByType(PBAutoBuildStep.DescriptorImpl.class); + if (jenkins != null && jenkins.getDescriptorByType(PBAutoBuildBuilder.DescriptorImpl.class) != null) { + return jenkins.getDescriptorByType(PBAutoBuildBuilder.DescriptorImpl.class); } else { // To stick with current behavior and meet findbugs requirements throw new NullPointerException(jenkins == null ? "Jenkins instance is null" : "PBAutoBuildBuilder.DescriptorImpl is null"); diff --git a/src/main/resources/io/jenkins/plugins/sample/PBAutoBuildBuilder/config.jelly b/src/main/resources/io/jenkins/plugins/sample/PBAutoBuildBuilder/config.jelly index 702bc00..3d08503 100644 --- a/src/main/resources/io/jenkins/plugins/sample/PBAutoBuildBuilder/config.jelly +++ b/src/main/resources/io/jenkins/plugins/sample/PBAutoBuildBuilder/config.jelly @@ -31,9 +31,12 @@ THE SOFTWARE. - + + + +