aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java
diff options
context:
space:
mode:
authorS.nishio <nishio@densan-labs.net>2014-02-09 01:44:43 +0900
committerS.nishio <nishio@densan-labs.net>2014-02-12 21:53:08 +0900
commit49ffd99bfcdc19ba3ada480aa3cf4bd6879d2d45 (patch)
tree4280b3e868540172f3561122cff9bc2207e92856 /src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java
downloadbbprb-49ffd99bfcdc19ba3ada480aa3cf4bd6879d2d45.tar.gz
initial commit
Diffstat (limited to 'src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java')
-rw-r--r--src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java
new file mode 100644
index 0000000..a940ca9
--- /dev/null
+++ b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java
@@ -0,0 +1,65 @@
+package bitbucketpullrequestbuilder.bitbucketpullrequestbuilder;
+
+import hudson.model.AbstractBuild;
+import hudson.model.Cause;
+import hudson.model.Result;
+import jenkins.model.Jenkins;
+
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Created by nishio
+ */
+public class BitbucketBuilds {
+ private static final Logger logger = Logger.getLogger(BitbucketBuilds.class.getName());
+ private BitbucketBuildTrigger trigger;
+ private BitbucketRepository repository;
+
+ public BitbucketBuilds(BitbucketBuildTrigger trigger, BitbucketRepository repository) {
+ this.trigger = trigger;
+ this.repository = repository;
+ }
+
+ public BitbucketCause getCause(AbstractBuild build) {
+ Cause cause = build.getCause(BitbucketCause.class);
+ if (cause == null || !(cause instanceof BitbucketCause)) {
+ return null;
+ }
+ return (BitbucketCause) cause;
+ }
+
+ public void onStarted(AbstractBuild build) {
+ BitbucketCause cause = this.getCause(build);
+ if (cause == null) {
+ return;
+ }
+ try {
+ build.setDescription(cause.getShortDescription());
+ } catch (IOException e) {
+ logger.log(Level.SEVERE, "Can't update build description", e);
+ }
+ }
+
+ public void onCompleted(AbstractBuild build) {
+ BitbucketCause cause = this.getCause(build);
+ if (cause == null) {
+ return;
+ }
+ Result result = build.getResult();
+ String rootUrl = Jenkins.getInstance().getRootUrl();
+ String buildUrl = "";
+ if (rootUrl == null) {
+ buildUrl = " PLEASE SET JENKINS ROOT URL FROM GLOBAL CONFIGURATION " + build.getUrl();
+ }
+ else {
+ buildUrl = rootUrl + build.getUrl();
+ }
+ if(result == Result.SUCCESS) {
+ repository.postFinishedComment(cause.getPullRequestId(), true, buildUrl);
+ } else if (result == Result.FAILURE || result == Result.UNSTABLE) {
+ repository.postFinishedComment(cause.getPullRequestId(), false, buildUrl);
+ }
+ }
+}