package org.csanchez.jenkins.plugins.kubernetes.pipeline; import java.io.Serializable; import java.util.Set; 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 com.google.common.collect.ImmutableSet; import hudson.Extension; import hudson.FilePath; import hudson.model.TaskListener; public class ContainerStep extends Step implements Serializable { private static final long serialVersionUID = 5588861066775717487L; private final String name; @DataBoundConstructor public ContainerStep(String name) { this.name = name; } public String getName() { return name; } @Override public StepExecution start(StepContext context) throws Exception { return new ContainerStepExecution(this, context); } @Extension public static class DescriptorImpl extends StepDescriptor { @Override public String getFunctionName() { return "container"; } @Override public String getDisplayName() { return "Run build steps in a container"; } @Override public boolean takesImplicitBlockArgument() { return true; } @Override public boolean isAdvanced() { return true; } @Override public Set<? extends Class<?>> getRequiredContext() { return ImmutableSet.of(PodTemplateStep.class, FilePath.class, TaskListener.class); } } }