Skip to content

Commit

Permalink
Make coverage plugin check more robust (#308)
Browse files Browse the repository at this point in the history
* Make coverage plugin check more robust

* Fix checkstyle
  • Loading branch information
kageiit committed Dec 4, 2018
1 parent d24c091 commit e239ad4
Showing 1 changed file with 22 additions and 12 deletions.
34 changes: 22 additions & 12 deletions src/main/java/com/uber/jenkins/phabricator/PhabricatorNotifier.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@

import hudson.plugins.cobertura.CoberturaBuildAction;
import hudson.plugins.jacoco.JacocoBuildAction;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.DataBoundConstructor;

import java.io.File;
Expand Down Expand Up @@ -331,21 +332,30 @@ private CoverageProvider getCoverageProvider(
return null;
}

copyCoverageToJenkinsMaster(build, workspace, listener);

CoverageProvider coverageProvider = null;
Logger logger = new Logger(listener.getLogger());

// First check if any coverage plugins are applied. These take precedence over other providers
// Only one coverage plugin provider is supported per build
CoberturaBuildAction coberturaBuildAction = build.getAction(CoberturaBuildAction.class);
JacocoBuildAction jacocoBuildAction = build.getAction(JacocoBuildAction.class);
CoverageProvider coverageProvider;
Logger logger = new Logger(listener.getLogger());
if (Jenkins.getInstance().getPlugin("cobertura") != null) {
CoberturaBuildAction coberturaBuildAction = build.getAction(CoberturaBuildAction.class);
if (coberturaBuildAction != null) { // Choose only a single coverage provider
logger.info(UBERALLS_TAG, "Using coverage metrics from Cobertura Jenkins Plugin");
coverageProvider = new CoberturaPluginCoverageProvider(getCoverageReports(build), includeFiles, coberturaBuildAction);
}
}

copyCoverageToJenkinsMaster(build, workspace, listener);
if (coberturaBuildAction != null) { // Choose only a single coverage provider
logger.info(UBERALLS_TAG, "Using coverage metrics from Cobertura Jenkins Plugin");
coverageProvider = new CoberturaPluginCoverageProvider(getCoverageReports(build), includeFiles, coberturaBuildAction);
} else if (jacocoBuildAction != null) {
logger.info(UBERALLS_TAG, "Using coverage metrics from Jacoco Jenkins Plugin");
coverageProvider = new JacocoPluginCoverageProvider(getCoverageReports(build), includeFiles, jacocoBuildAction);
} else {
if (coverageProvider == null && Jenkins.getInstance().getPlugin("jacoco") != null) {
JacocoBuildAction jacocoBuildAction = build.getAction(JacocoBuildAction.class);
if (jacocoBuildAction != null) {
logger.info(UBERALLS_TAG, "Using coverage metrics from Jacoco Jenkins Plugin");
coverageProvider = new JacocoPluginCoverageProvider(getCoverageReports(build), includeFiles, jacocoBuildAction);
}
}

if (coverageProvider == null) {
logger.info(UBERALLS_TAG, "Trying to obtain coverage metrics by parsing coverage xml files");
coverageProvider = new XmlCoverageProvider(getCoverageReports(build), includeFiles);
}
Expand Down

0 comments on commit e239ad4

Please sign in to comment.