Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[Fix JENKINS-32940] Update bitbucket status resource if prev build wa…
…s aborted
  • Loading branch information
Antonio Mansilla committed Mar 3, 2016
1 parent faae72c commit 2238072
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
Expand Up @@ -153,7 +153,7 @@ private String guessBitbucketBuildState(final Result result) {
state = BitbucketBuildStatus.INPROGRESS;
} else if (Result.SUCCESS == result) {
state = BitbucketBuildStatus.SUCCESSFUL;
} else if (Result.UNSTABLE == result || Result.FAILURE == result) {
} else if (Result.UNSTABLE == result || Result.FAILURE == result || Result.ABORTED == result) {
state = BitbucketBuildStatus.FAILED;
} else {
// return empty status for every other result (NOT_BUILT, ABORTED)
Expand Down Expand Up @@ -215,6 +215,17 @@ private void notifyBuildStatus(final AbstractBuild build, final BuildListener li
BitbucketBuildStatusResource buildStatusResource = this.createBuildStatusResourceFromBuild(build);
BitbucketBuildStatus buildStatus = this.createBitbucketBuildStatusFromBuild(build);

// if previous build was manually aborted by the user and revision is the same than the current one
// then update the bitbucket build status resource with current status and current build number
AbstractBuild prevBuild = build.getPreviousBuild();
if (prevBuild != null && prevBuild.getResult() != null && prevBuild.getResult() == Result.ABORTED) {
BitbucketBuildStatusResource prevBuildStatusResource = this.createBuildStatusResourceFromBuild(prevBuild);
if (prevBuildStatusResource.getCommitId().equals(buildStatusResource.getCommitId())) {
BitbucketBuildStatus prevBuildStatus = this.createBitbucketBuildStatusFromBuild(prevBuild);
buildStatus.setKey(prevBuildStatus.getKey());
}
}

if (credentials == null) {
Job job = null;
credentials = this.getCredentials(this.getDescriptor().getGlobalCredentialsId(), job);
Expand Down Expand Up @@ -244,7 +255,7 @@ private void notifyBuildStatus(final AbstractBuild build, final BuildListener li
listener.getLogger().println("Sending build status " + buildStatus.getState() + " for commit " + buildStatusResource.getCommitId() + " to BitBucket is done!");
}

private BitbucketBuildStatus createBitbucketBuildStatusFromBuild(AbstractBuild build) {
private BitbucketBuildStatus createBitbucketBuildStatusFromBuild(AbstractBuild build) throws Exception {

String buildState = this.guessBitbucketBuildState(build.getResult());
// bitbucket requires the key to be shorter than 40 chars
Expand Down
Expand Up @@ -50,4 +50,8 @@ public String getName() {
public String getDescription() {
return description;
}

public void setKey(String key) {
this.key = key;
}
}

0 comments on commit 2238072

Please sign in to comment.