Jenkins Tutorials
For a list of all jenkins related tutorials see Jenkins Tutorials Overview.
Source code for this tutorial is available on github as a single zip archive, as a Team Project Set or you can browse the files online.
Step 1: Advanced UI Section
To simplify the job setup we now move all parameters except the build message to an advanced section.
The only thing necessary in the config.jelly file is to create the section and move all affected input elements into it:
<f:entry title="Custom build message" field="buildMessage"> <f:textbox default="${descriptor.getDefaultBuildMessage()}" /> </f:entry> <f:advanced> <f:entry title="Fail this build" field="failBuild"> <f:checkbox /> </f:entry> <f:entry title="Build Delay" field="buildDelay"> <f:select /> </f:entry> </f:advanced>
Afterwards the UI looks like this:
Step 2: Java Refactoring
Basically we do not need to change anything in the Java code to make this work. However we want to prepare a little for pipeline builds, so we remove non-required parameters from the constructor and create separate setters for them. To make Jenkins aware of these setters, use the @DataBoundSetter annotation:
public class HelloBuilder extends Builder implements SimpleBuildStep { private boolean fFailBuild = false; private String fBuildMessage; private String fBuildDelay = "none"; @DataBoundConstructor public HelloBuilder(String buildMessage) { fBuildMessage = buildMessage; } @DataBoundSetter public void setFailBuild(boolean failBuild) { fFailBuild = failBuild; } @DataBoundSetter public void setBuildDelay(String buildDelay) { fBuildDelay = buildDelay; } }
Whenever a parameter is not required, remove it from the constructor and use a setter for it.
No comments:
Post a Comment