Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public class GitLabCommitStatusStep extends Step {
private String name;
private List<GitLabBranchBuild> builds = new ArrayList<GitLabBranchBuild>() ;
private GitLabConnectionProperty connection;
private String state;

@DataBoundConstructor
public GitLabCommitStatusStep(String name){
Expand All @@ -55,6 +56,15 @@ public List<GitLabBranchBuild> getBuilds() {
return builds;
}

@DataBoundSetter
public void setState(String state){
this.state = StringUtils.isEmpty(state) ? null : state;
}

public String getState() {
return state;
}

@DataBoundSetter
public void setBuilds(List<GitLabBranchBuild> builds) {
this.builds = builds;
Expand Down Expand Up @@ -91,16 +101,22 @@ public boolean start() throws Exception {
.withCallback(new BodyExecutionCallback() {
@Override
public void onStart(StepContext context) {
CommitStatusUpdater.updateCommitStatus(run, getTaskListener(context), BuildState.running, name, step.builds, step.connection);
PendingBuildsAction action = run.getAction(PendingBuildsAction.class);
if (action != null) {
action.startBuild(name);
if (step.state == null) {
CommitStatusUpdater.updateCommitStatus(run, getTaskListener(context), BuildState.running, name, step.builds, step.connection);
PendingBuildsAction action = run.getAction(PendingBuildsAction.class);
if (action != null) {
action.startBuild(name);
}
} else if (step.state == "pending") {
CommitStatusUpdater.updateCommitStatus(run, getTaskListener(context), BuildState.pending, name, step.builds, step.connection);
}
}

@Override
public void onSuccess(StepContext context, Object result) {
CommitStatusUpdater.updateCommitStatus(run, getTaskListener(context), BuildState.success, name, step.builds, step.connection);
if (step == null || step.state == null || step.state != "pending") {
CommitStatusUpdater.updateCommitStatus(run, getTaskListener(context), BuildState.success, name, step.builds, step.connection);
}
context.onSuccess(result);
}

Expand Down