From 49ffd99bfcdc19ba3ada480aa3cf4bd6879d2d45 Mon Sep 17 00:00:00 2001 From: "S.nishio" Date: Sun, 9 Feb 2014 01:44:43 +0900 Subject: initial commit --- .../BitbucketBuilds.java | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java (limited to 'src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuilds.java') 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); + } + } +} -- cgit v1.2.3