diff --git a/src/main/java/net/masterthought/jenkins/CucumberReportBaseAction.java b/src/main/java/net/masterthought/jenkins/CucumberReportBaseAction.java index f1be464..71cec13 100644 --- a/src/main/java/net/masterthought/jenkins/CucumberReportBaseAction.java +++ b/src/main/java/net/masterthought/jenkins/CucumberReportBaseAction.java @@ -1,10 +1,12 @@ package net.masterthought.jenkins; import hudson.FilePath; +import hudson.PluginWrapper; import hudson.model.AbstractItem; import hudson.model.Action; import hudson.model.DirectoryBrowserSupport; import hudson.model.ProminentProjectAction; +import jenkins.model.Jenkins; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -23,7 +25,7 @@ public abstract class CucumberReportBaseAction implements Action { } public String getIconFileName(){ - return dir().exists() ? "graph.gif" : null; + return "/plugin/cucumber-reports/cuke.gif"; } public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { diff --git a/src/main/java/net/masterthought/jenkins/CucumberReportProjectAction.java b/src/main/java/net/masterthought/jenkins/CucumberReportProjectAction.java index d2d3c6f..bff9f6b 100644 --- a/src/main/java/net/masterthought/jenkins/CucumberReportProjectAction.java +++ b/src/main/java/net/masterthought/jenkins/CucumberReportProjectAction.java @@ -1,40 +1,52 @@ -//package net.masterthought.jenkins; -// -//import hudson.model.AbstractItem; -//import hudson.model.AbstractProject; -//import hudson.model.ProminentProjectAction; -//import hudson.model.Run; -// -//import java.io.File; -// -//public class CucumberReportProjectAction extends CucumberReportBaseAction implements ProminentProjectAction { -// private final AbstractItem project; -// -// public CucumberReportProjectAction(AbstractItem project) { -// super(); -// this.project = project; -// } -// -// @Override -// protected File dir() { -// if (this.project instanceof AbstractProject) { -// AbstractProject abstractProject = (AbstractProject) this.project; -// -// Run run = abstractProject.getLastSuccessfulBuild(); -// if (run != null) { -// File javadocDir = getBuildArchiveDir(run); -// -// if (javadocDir.exists()) { -// return javadocDir; -// } -// } -// } -// -// return getProjectArchiveDir(this.project); -// } -// -// @Override -// protected String getTitle() { -// return this.project.getDisplayName() + " html2"; -// } -//} \ No newline at end of file +package net.masterthought.jenkins; + +import hudson.model.AbstractItem; +import hudson.model.AbstractProject; +import hudson.model.ProminentProjectAction; +import hudson.model.Run; + +import java.io.File; + +public class CucumberReportProjectAction extends CucumberReportBaseAction implements ProminentProjectAction { + private final AbstractItem project; + + public CucumberReportProjectAction(AbstractItem project) { + super(); + this.project = project; + } + + @Override + protected File dir() { + if (this.project instanceof AbstractProject) { + AbstractProject abstractProject = (AbstractProject) this.project; + + Run run = abstractProject.getLastCompletedBuild(); + if (run != null) { + File javadocDir = getBuildArchiveDir(run); + + if (javadocDir.exists()) { + return javadocDir; + } + } + } + + return getProjectArchiveDir(this.project); + } + + private File getProjectArchiveDir(AbstractItem project) { + return new File(project.getRootDir(), "cucumber-html-reports"); + } + + /** + * Gets the directory where the HTML report is stored for the given build. + */ + private File getBuildArchiveDir(Run run) { + return new File(run.getRootDir(), "cucumber-html-reports"); + } + + + @Override + protected String getTitle() { + return this.project.getDisplayName() + " html2"; + } +} \ No newline at end of file diff --git a/src/main/java/net/masterthought/jenkins/CucumberReportPublisher.java b/src/main/java/net/masterthought/jenkins/CucumberReportPublisher.java index c02365c..78c0646 100644 --- a/src/main/java/net/masterthought/jenkins/CucumberReportPublisher.java +++ b/src/main/java/net/masterthought/jenkins/CucumberReportPublisher.java @@ -5,6 +5,7 @@ import hudson.FilePath; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; +import hudson.model.Action; import hudson.model.BuildListener; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.BuildStepMonitor; @@ -98,6 +99,11 @@ public class CucumberReportPublisher extends Recorder { return fullPathList; } + @Override + public Action getProjectAction(AbstractProject project) { + return new CucumberReportProjectAction(project); + } + @Extension public static class DescriptorImpl extends BuildStepDescriptor { @Override diff --git a/src/main/webapp/cuke.gif b/src/main/webapp/cuke.gif new file mode 100644 index 0000000..888c4d3 Binary files /dev/null and b/src/main/webapp/cuke.gif differ