package me.batanov.jenkins.plugins.atlassian.bitbucket.notifier; import hudson.Extension; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.BuildListener; import hudson.tasks.BuildWrapper; import hudson.tasks.BuildWrapperDescriptor; import org.kohsuke.stapler.DataBoundConstructor; import java.io.IOException; import java.io.PrintStream; import java.util.List; /** * @author Pavel Batanov <pavel@batanov.me> * 11.01.2016 16:48 */ public final class BuildNotifyWrapper extends BuildWrapper { //https://github.com/jenkinsci/coverity-plugin/tree/master/src/main/java/jenkins/plugins/coverity //https://github.com/jenkinsci/coverity-plugin/blob/master/src/main/resources/jenkins/plugins/coverity/CoverityPublisher/global.jelly @DataBoundConstructor public BuildNotifyWrapper(boolean preNotify, List<NotifiedServer> servers) { } @Override public BuildWrapper.Environment setUp(final AbstractBuild build, final Launcher launcher, final BuildListener listener) throws IOException, InterruptedException { final PrintStream logger = listener.getLogger(); logger.println("Pre build (setUp) notifier triggered"); return new BuildWrapper.Environment() { @Override public boolean tearDown(AbstractBuild build, BuildListener listener) throws IOException, InterruptedException { logger.println("Post build (setUp) notifier triggered"); return true; } }; } @Override public Descriptor getDescriptor() { return (Descriptor) super.getDescriptor(); } @Extension public static class Descriptor extends BuildWrapperDescriptor { @Override public boolean isApplicable(final AbstractProject<?, ?> item) { return true; } @Override public String getDisplayName() { return "Notify stash instance"; } } }