package hudson.plugins.descriptionsetter.tasks;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.Task;
import net.serenitybdd.screenplay.actions.Enter;
import net.serenitybdd.screenplay.jenkins.targets.Setting;
import net.serenitybdd.screenplay.jenkins.tasks.configuration.build_steps.AddABuildStep;
import net.thucydides.core.annotations.Step;
import static net.serenitybdd.screenplay.Tasks.instrumented;
public class SetBuildDescription implements Task {
private final String description;
private String regex = "";
public static SetBuildDescription to(String description) {
return instrumented(SetBuildDescription.class, description);
}
public SetBuildDescription basedOnLogLineMatching(String regex) {
this.regex = regex;
return this;
}
public SetBuildDescription(String description) {
this.description = description;
}
@Step("{0} indicates that the build description should be set to '#description', based on regex '#regex')")
@Override
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
AddABuildStep.called("Set build description"),
Enter.theValue(regex).into(Setting.defining("Regular expression")),
Enter.theValue(description).into(Setting.defining("Description"))
);
}
}