
au.com.centrumsystems.hudson.plugin.buildpipeline.BuildForm Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of build-pipeline-plugin Show documentation
Show all versions of build-pipeline-plugin Show documentation
This plugin provides build pipeline functionality to Hudson and Jenkins. This allows a chain of jobs to be visualised in a new view. Manual jobs in the pipeline can be triggered by a user with the appropriate permissions manually confirming.
The newest version!
package au.com.centrumsystems.hudson.plugin.buildpipeline;
import hudson.model.AbstractBuild;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import org.kohsuke.stapler.bind.JavaScriptMethod;
/**
* @author Centrum Systems
*
* Representation of a build results pipeline
*
*/
public class BuildForm {
/**
* logger
*/
private static final Logger LOGGER = Logger.getLogger(BuildForm.class.getName());
/**
* status
*/
private String status = "";
/**
* pipeline build
*/
private PipelineBuild pipelineBuild;
/**
* id
*/
private final Integer id;
/**
* project id used to update project cards
*/
// TODO refactor to get rid of this coupling
private final Integer projectId;
/**
* downstream builds
*/
private List dependencies = new ArrayList();
/**
* @param pipelineBuild
* pipeline build domain used to see the form
*/
public BuildForm(final PipelineBuild pipelineBuild) {
this.pipelineBuild = pipelineBuild;
status = pipelineBuild.getCurrentBuildResult();
dependencies = new ArrayList();
for (final PipelineBuild downstream : pipelineBuild.getDownstreamPipeline()) {
dependencies.add(new BuildForm(downstream));
}
id = hashCode();
projectId = pipelineBuild.getProject().getName().hashCode();
}
public String getStatus() {
return status;
}
public List getDependencies() {
return dependencies;
}
/**
* @return All ids for existing depencies.
*/
public List getDependencyIds() {
final List ids = new ArrayList();
for (final BuildForm dependency : dependencies) {
ids.add(dependency.getId());
}
return ids;
}
/**
* @return convert pipelineBuild as json format.
*/
@JavaScriptMethod
public String asJSON() {
return BuildJSONBuilder.asJSON(pipelineBuild, id, projectId, getDependencyIds());
}
public int getId() {
return id;
}
/**
*
* @param nextBuildNumber
* nextBuildNumber
* @return is the build pipeline updated.
*/
@JavaScriptMethod
public boolean updatePipelineBuild(final int nextBuildNumber) {
boolean updated = false;
final AbstractBuild, ?> newBuild = pipelineBuild.getProject().getBuildByNumber(nextBuildNumber);
if (newBuild != null) {
updated = true;
pipelineBuild = new PipelineBuild(newBuild, newBuild.getProject(), pipelineBuild.getUpstreamBuild());
}
return updated;
}
public int getNextBuildNumber() {
return pipelineBuild.getProject().getNextBuildNumber();
}
public String getRevision() {
return pipelineBuild.getPipelineVersion();
}
@JavaScriptMethod
public boolean isManualTrigger() {
return pipelineBuild.isManualTrigger();
}
public Map getParameters() {
return pipelineBuild.getBuildParameters();
}
public Integer getProjectId() {
return projectId;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy