Aggiunto parametro StartsIn per cambiare cartella prima dell'avvio della build
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -32,7 +32,7 @@
|
|||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<revision>1.0.26</revision>
|
<revision>1.0.27</revision>
|
||||||
<changelist>-SNAPSHOT</changelist>
|
<changelist>-SNAPSHOT</changelist>
|
||||||
|
|
||||||
<!-- https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/ -->
|
<!-- https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/ -->
|
||||||
|
|||||||
@@ -8,22 +8,18 @@ import hudson.tasks.Builder;
|
|||||||
import hudson.tools.ToolInstallation;
|
import hudson.tools.ToolInstallation;
|
||||||
import jenkins.tasks.SimpleBuildStep;
|
import jenkins.tasks.SimpleBuildStep;
|
||||||
import org.jenkinsci.Symbol;
|
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.DataBoundConstructor;
|
||||||
import org.kohsuke.stapler.DataBoundSetter;
|
import org.kohsuke.stapler.DataBoundSetter;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class PBAutoBuildStep extends Builder implements SimpleBuildStep {
|
public class PBAutoBuildBuilder extends Builder implements SimpleBuildStep {
|
||||||
/**
|
/**
|
||||||
* GUI fields
|
* GUI fields
|
||||||
*/
|
*/
|
||||||
private String pbAutoBuildName;
|
private String pbAutoBuildName;
|
||||||
|
private String startsIn;
|
||||||
private String cmdLineArgs;
|
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
|
* @param cmdLineArgs Whitespace separated list of command line arguments for pb autobuild utility
|
||||||
*/
|
*/
|
||||||
@DataBoundConstructor
|
@DataBoundConstructor
|
||||||
public PBAutoBuildStep(String pbAutoBuildName, String cmdLineArgs) {
|
public PBAutoBuildBuilder(String pbAutoBuildName, String cmdLineArgs) {
|
||||||
this.pbAutoBuildName = pbAutoBuildName;
|
this.pbAutoBuildName = pbAutoBuildName;
|
||||||
this.cmdLineArgs = cmdLineArgs;
|
this.cmdLineArgs = cmdLineArgs;
|
||||||
}
|
}
|
||||||
@@ -58,6 +54,15 @@ public class PBAutoBuildStep extends Builder implements SimpleBuildStep {
|
|||||||
this.cmdLineArgs = cmdLineArgs;
|
this.cmdLineArgs = cmdLineArgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getStartsIn() {
|
||||||
|
return startsIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataBoundSetter
|
||||||
|
public PBAutoBuildBuilder setStartsIn(String startsIn) {
|
||||||
|
this.startsIn = startsIn;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
|
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.setDescriptor(getDescriptor());
|
||||||
pbAutoBuildExecution.setPbAutoBuildName(getPbAutoBuildName());
|
pbAutoBuildExecution.setPbAutoBuildName(getPbAutoBuildName());
|
||||||
pbAutoBuildExecution.setCmdLineArgs(getCmdLineArgs());
|
pbAutoBuildExecution.setCmdLineArgs(getCmdLineArgs());
|
||||||
|
pbAutoBuildExecution.setStartsIn(getStartsIn());
|
||||||
pbAutoBuildExecution.start();
|
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
|
@Extension
|
||||||
@Symbol("pbautobuild")
|
@Symbol("pbautobuild")
|
||||||
@@ -96,7 +93,7 @@ public class PBAutoBuildStep extends Builder implements SimpleBuildStep {
|
|||||||
private volatile PBAutoBuildInstallation[] installations = new PBAutoBuildInstallation[0];
|
private volatile PBAutoBuildInstallation[] installations = new PBAutoBuildInstallation[0];
|
||||||
|
|
||||||
public DescriptorImpl() {
|
public DescriptorImpl() {
|
||||||
super(PBAutoBuildStep.class);
|
super(PBAutoBuildBuilder.class);
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
package io.jenkins.plugins.sample;
|
package io.jenkins.plugins.sample;
|
||||||
|
|
||||||
|
import com.iwombat.util.StringUtil;
|
||||||
import hudson.*;
|
import hudson.*;
|
||||||
import hudson.model.Descriptor;
|
import hudson.model.Descriptor;
|
||||||
import hudson.model.Result;
|
import hudson.model.Result;
|
||||||
import hudson.model.Run;
|
import hudson.model.Run;
|
||||||
import hudson.model.TaskListener;
|
import hudson.model.TaskListener;
|
||||||
import hudson.util.ArgumentListBuilder;
|
import hudson.util.ArgumentListBuilder;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.jenkinsci.plugins.workflow.steps.*;
|
import org.jenkinsci.plugins.workflow.steps.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -18,13 +20,14 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl {
|
|||||||
private Descriptor descriptor;
|
private Descriptor descriptor;
|
||||||
|
|
||||||
private String pbAutoBuildName;
|
private String pbAutoBuildName;
|
||||||
|
private String startsIn;
|
||||||
private String cmdLineArgs;
|
private String cmdLineArgs;
|
||||||
|
|
||||||
private final Run<?, ?> build;
|
private final Run<?, ?> build;
|
||||||
private final EnvVars envVars;
|
private final EnvVars envVars;
|
||||||
private final Launcher launcher;
|
private final Launcher launcher;
|
||||||
private final TaskListener listener;
|
private final TaskListener listener;
|
||||||
private final FilePath workspace;
|
private FilePath workspace;
|
||||||
|
|
||||||
public PBAutoBuildExecution(Run<?, ?> build, EnvVars envVars, Launcher launcher, TaskListener listener,FilePath workspace) {
|
public PBAutoBuildExecution(Run<?, ?> build, EnvVars envVars, Launcher launcher, TaskListener listener,FilePath workspace) {
|
||||||
this.build = build;
|
this.build = build;
|
||||||
@@ -83,6 +86,11 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl {
|
|||||||
args.add(tokenizeArgs(ai.getDefaultArgs()));
|
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)
|
// Aggiungi gli argomenti personalizzati (se presenti)
|
||||||
String normalizedArgs = cmdLineArgs.replaceAll("[\t\r\n]+", " ");
|
String normalizedArgs = cmdLineArgs.replaceAll("[\t\r\n]+", " ");
|
||||||
normalizedArgs = Util.replaceMacro(normalizedArgs, envVars);
|
normalizedArgs = Util.replaceMacro(normalizedArgs, envVars);
|
||||||
@@ -144,7 +152,7 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PBAutoBuildInstallation getPBAutoBuild() {
|
public PBAutoBuildInstallation getPBAutoBuild() {
|
||||||
PBAutoBuildStep.DescriptorImpl descriptor = (PBAutoBuildStep.DescriptorImpl) getDescriptor();
|
PBAutoBuildBuilder.DescriptorImpl descriptor = (PBAutoBuildBuilder.DescriptorImpl) getDescriptor();
|
||||||
for (PBAutoBuildInstallation i : descriptor.getInstallations()) {
|
for (PBAutoBuildInstallation i : descriptor.getInstallations()) {
|
||||||
if (pbAutoBuildName != null && i.getName().equals(pbAutoBuildName))
|
if (pbAutoBuildName != null && i.getName().equals(pbAutoBuildName))
|
||||||
return i;
|
return i;
|
||||||
@@ -217,4 +225,9 @@ public class PBAutoBuildExecution extends AbstractStepExecutionImpl {
|
|||||||
this.cmdLineArgs = cmdLineArgs;
|
this.cmdLineArgs = cmdLineArgs;
|
||||||
return this;
|
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);
|
getDescriptor().setInstallations(installations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private PBAutoBuildStep.DescriptorImpl getDescriptor() {
|
private PBAutoBuildBuilder.DescriptorImpl getDescriptor() {
|
||||||
Jenkins jenkins = Jenkins.getInstanceOrNull();
|
Jenkins jenkins = Jenkins.getInstanceOrNull();
|
||||||
if (jenkins != null && jenkins.getDescriptorByType(PBAutoBuildStep.DescriptorImpl.class) != null) {
|
if (jenkins != null && jenkins.getDescriptorByType(PBAutoBuildBuilder.DescriptorImpl.class) != null) {
|
||||||
return jenkins.getDescriptorByType(PBAutoBuildStep.DescriptorImpl.class);
|
return jenkins.getDescriptorByType(PBAutoBuildBuilder.DescriptorImpl.class);
|
||||||
} else {
|
} else {
|
||||||
// To stick with current behavior and meet findbugs requirements
|
// To stick with current behavior and meet findbugs requirements
|
||||||
throw new NullPointerException(jenkins == null ? "Jenkins instance is null" : "PBAutoBuildBuilder.DescriptorImpl is null");
|
throw new NullPointerException(jenkins == null ? "Jenkins instance is null" : "PBAutoBuildBuilder.DescriptorImpl is null");
|
||||||
|
|||||||
@@ -31,9 +31,12 @@ THE SOFTWARE.
|
|||||||
</select>
|
</select>
|
||||||
</f:entry>
|
</f:entry>
|
||||||
<f:entry title="${%Additional command line arguments}" field="cmdLineArgs">
|
<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:entry>
|
||||||
<f:advanced>
|
<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:entry title="${%Continue Job on build Failure}" field="continueOnBuildFailure">
|
||||||
<f:checkbox name="pbAutoBuildStep.continueOnBuildFailure" value="${instance.continueOnBuildFailure}"
|
<f:checkbox name="pbAutoBuildStep.continueOnBuildFailure" value="${instance.continueOnBuildFailure}"
|
||||||
checked="${instance.continueOnBuildFailure}" default="false"/>
|
checked="${instance.continueOnBuildFailure}" default="false"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user