Skip to content

Commit

Permalink
Merge pull request #6 from plaflamme/jenkins-12640
Browse files Browse the repository at this point in the history
Fixing JENKINS-12640
  • Loading branch information
ssogabe committed May 5, 2012
2 parents 05dd959 + dd2ace3 commit 85bcedd
Showing 1 changed file with 52 additions and 5 deletions.
57 changes: 52 additions & 5 deletions src/main/java/hudson/plugins/cobertura/CoberturaPublisher.java
Expand Up @@ -4,7 +4,15 @@
import hudson.FilePath;
import hudson.Launcher;
import hudson.Util;
import hudson.model.*;
import hudson.maven.ExecutedMojo;
import hudson.maven.MavenBuild;
import hudson.maven.MavenModuleSetBuild;
import hudson.model.Action;
import hudson.model.BuildListener;
import hudson.model.Result;
import hudson.model.AbstractBuild;
import hudson.model.AbstractItem;
import hudson.model.AbstractProject;
import hudson.plugins.cobertura.renderers.SourceCodePainter;
import hudson.plugins.cobertura.renderers.SourceEncoding;
import hudson.plugins.cobertura.targets.CoverageMetric;
Expand All @@ -14,16 +22,24 @@
import hudson.tasks.BuildStepMonitor;
import hudson.tasks.Publisher;
import hudson.tasks.Recorder;
import org.apache.commons.beanutils.ConvertUtils;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import net.sf.json.JSONObject;

import org.apache.commons.beanutils.ConvertUtils;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;

/**
* Cobertura {@link Publisher}.
*
Expand Down Expand Up @@ -212,6 +228,21 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListen
listener.getLogger().println("Skipping Cobertura coverage report as build was not " + threshold.toString() + " or better ...");
return true;
}
// Make sure Cobertura actually ran
if(build instanceof MavenBuild) {
MavenBuild mavenBuild = (MavenBuild)build;
if(didCoberturaRun(mavenBuild) == false) {
listener.getLogger().println("Skipping Cobertura coverage report as mojo did not run.");
return true;
}
} else if(build instanceof MavenModuleSetBuild) {
MavenModuleSetBuild moduleSetBuild = (MavenModuleSetBuild)build;
if(didCoberturaRun(moduleSetBuild.getModuleLastBuilds().values()) == false) {
listener.getLogger().println("Skipping Cobertura coverage report as mojo did not run.");
return true;
}
}

listener.getLogger().println("Publishing Cobertura coverage report...");
final FilePath[] moduleRoots = build.getModuleRoots();
final boolean multipleModuleRoots =
Expand Down Expand Up @@ -434,4 +465,20 @@ public boolean accept(File dir, String name) {
return name.startsWith("coverage") && name.endsWith(".xml");
}
}

private boolean didCoberturaRun(Iterable<MavenBuild> mavenBuilds) {
for(MavenBuild build: mavenBuilds) {
if(didCoberturaRun(build)) return true;
}
return false;
}

private boolean didCoberturaRun(MavenBuild mavenBuild) {
for(ExecutedMojo mojo : mavenBuild.getExecutedMojos()) {
if(mojo.groupId.equals("org.codehaus.mojo") && mojo.artifactId.equals("cobertura-maven-plugin")) {
return true;
}
}
return false;
}
}

1 comment on commit 85bcedd

@sathishkanthr
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge pull request

Please sign in to comment.