Skip to content

Commit

Permalink
Merge pull request jenkinsci#404 from mmitche/build-comment-extensions
Browse files Browse the repository at this point in the history
Add job dsl extensions for build status messages
  • Loading branch information
DavidTanner committed Sep 1, 2016
2 parents 3515179 + 37bc793 commit cc63adb
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 0 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,11 @@ job('upstreamJob') {
completedStatus('PENDING', 'still in progress...')
completedStatus('ERROR', 'Something went really wrong. Investigate!')
}
buildStatus {
completedStatus('SUCCESS', 'There were no errors, go have a cup of coffee...')
completedStatus('FAILURE', 'There were errors, for info, please see...')
completedStatus('ERROR', 'There was an error in the infrastructure, please contact...')
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.jenkinsci.plugins.ghprb.jobdsl;

import javaposse.jobdsl.dsl.Context;
import org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage;
import org.kohsuke.github.GHCommitState;

import java.util.ArrayList;
import java.util.List;

class GhprbBuildStatusContext implements Context {
List<GhprbBuildResultMessage> completedStatus = new ArrayList<GhprbBuildResultMessage>();

/**
* Use a custom status for when a build is completed. Can be called multiple times to set messages for different
* build results. Valid build results are {@code 'SUCCESS'}, {@code 'FAILURE'}, and {@code 'ERROR'}.
*/
void completedStatus(String buildResult, String message) {
completedStatus.add(new GhprbBuildResultMessage(
GHCommitState.valueOf(buildResult),
message
));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import javaposse.jobdsl.plugin.ContextExtensionPoint;
import org.jenkinsci.plugins.ghprb.extensions.GhprbExtension;
import org.jenkinsci.plugins.ghprb.extensions.status.GhprbSimpleStatus;
import org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildStatus;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -28,4 +29,16 @@ void commitStatus(Runnable closure) {
context.completedStatus
));
}

/**
* Adds build result messages
*/
void buildStatus(Runnable closure) {
GhprbBuildStatusContext context = new GhprbBuildStatusContext();
ContextExtensionPoint.executeInContext(closure, context);

extensions.add(new GhprbBuildStatus(
context.completedStatus
));
}
}

0 comments on commit cc63adb

Please sign in to comment.