package hudson.plugins.promoted_builds.conditions; import hudson.AbortException; import hudson.Extension; import hudson.FilePath; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.BuildListener; import hudson.model.Result; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.BuildStepMonitor; import hudson.tasks.Builder; import hudson.tasks.Publisher; import org.kohsuke.stapler.DataBoundConstructor; import java.io.IOException; /** * Created by IntelliJ IDEA. * User: stephenc * Date: 09/08/2011 * Time: 11:15 * To change this template use File | Settings | File Templates. */ public class FixedResultBuilder extends Builder { private Result buildResult; @DataBoundConstructor public FixedResultBuilder(Result buildResult) { this.buildResult = buildResult; } public BuildStepMonitor getRequiredMonitorService() { return BuildStepMonitor.NONE; } public Result getBuildResult() { return buildResult; } @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { FilePath workspace = build.getWorkspace(); if (workspace == null) { throw new AbortException("Workspace is missing in FixedResultBuilder"); } workspace.child("my.file").write("Hello world!", "UTF-8"); build.setResult(buildResult); return true; } @Extension public static class DescriptorImpl extends BuildStepDescriptor<Builder> { @Override public boolean isApplicable(Class<? extends AbstractProject> jobType) { return true; } @Override public String getDisplayName() { return null; } } }