Aggiunto parametro StartsIn per cambiare cartella prima dell'avvio della build
This commit is contained in:
parent
1b255ef0af
commit
f06cc0c814
2
pom.xml
2
pom.xml
@ -32,7 +32,7 @@
|
||||
</scm>
|
||||
|
||||
<properties>
|
||||
<revision>1.0.26</revision>
|
||||
<revision>1.0.27</revision>
|
||||
<changelist>-SNAPSHOT</changelist>
|
||||
|
||||
<!-- https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/ -->
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -31,9 +31,12 @@ THE SOFTWARE.
|
||||
</select>
|
||||
</f:entry>
|
||||
<f:entry title="${%Additional command line arguments}" field="cmdLineArgs">
|
||||
<f:textarea name="pbAutoBuildStep.cmdLineArgs" value="${instance.cmdLineArgs}"/>
|
||||
<f:textbox name="pbAutoBuildStep.cmdLineArgs" value="${instance.cmdLineArgs}"/>
|
||||
</f:entry>
|
||||
<f:advanced>
|
||||
<f:entry title="${%Starts in}" field="startsIn">
|
||||
<f:textbox name="pbAutoBuildStep.startsIn" value="${instance.startsIn}"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Continue Job on build Failure}" field="continueOnBuildFailure">
|
||||
<f:checkbox name="pbAutoBuildStep.continueOnBuildFailure" value="${instance.continueOnBuildFailure}"
|
||||
checked="${instance.continueOnBuildFailure}" default="false"/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user