diff --git a/src/main/java/org/jenkinsci/plugins/cppcheck/CppcheckPublisher.java b/src/main/java/org/jenkinsci/plugins/cppcheck/CppcheckPublisher.java index a39100d..76d8f06 100644 --- a/src/main/java/org/jenkinsci/plugins/cppcheck/CppcheckPublisher.java +++ b/src/main/java/org/jenkinsci/plugins/cppcheck/CppcheckPublisher.java @@ -53,7 +53,7 @@ public class CppcheckPublisher extends Recorder implements SimpleBuildStep { private CppcheckConfig cppcheckConfig; @DataBoundConstructor - public CppcheckPublisher() {this("", false, "", false, "", "", "", "", "", true, true, true, true, true, true, true, 500, 200, 0, true, false, false, false, false, false, false, false);} + public CppcheckPublisher() {this("", false, "", false, "", "", "", "", "", true, true, true, true, true, true, true, 500, 200, 0, true, false, false, false, false, false, false, false, false, false);} @Deprecated public CppcheckPublisher(String pattern, @@ -77,12 +77,16 @@ public CppcheckPublisher(String pattern, boolean displayPerformanceSeverity, boolean displayInformationSeverity, boolean displayNoCategorySeverity, - boolean displayPortabilitySeverity) { + boolean displayPortabilitySeverity, + boolean ignoreBuildResult, + boolean dontUpdateBuildResult) { config = new CppcheckConfig(); config.setPattern(pattern); config.setAllowNoReport(allowNoReport); + config.setIgnoreBuildResult(ignoreBuildResult); + config.setDontUpdateBuildResult(dontUpdateBuildResult); config.setIgnoreBlankFiles(ignoreBlankFiles); CppcheckConfigSeverityEvaluation configSeverityEvaluation = new CppcheckConfigSeverityEvaluation( threshold, newThreshold, failureThreshold, newFailureThreshold, healthy, unHealthy, @@ -182,6 +186,20 @@ public boolean getAllowNoReport() { return config.getAllowNoReport(); } @DataBoundSetter + public void setIgnoreBuildResult(boolean ignoreBuildResult) { + config.setIgnoreBuildResult(ignoreBuildResult); + } + public boolean getIgnoreBuildResult() { + return config.getIgnoreBuildResult(); + } + @DataBoundSetter + public void setDontUpdateBuildResult(boolean dontUpdateBuildResult) { + config.setDontUpdateBuildResult(dontUpdateBuildResult); + } + public boolean getDontUpdateBuildResult() { + return config.getDontUpdateBuildResult(); + } + @DataBoundSetter public void setSeverityError(boolean severityError) { config.getConfigSeverityEvaluation().setSeverityError(severityError); } @@ -312,7 +330,7 @@ public CppcheckConfig getCppcheckConfig() { } protected boolean canContinue(final Result result) { - return result != Result.ABORTED && result != Result.FAILURE; + return (config.getIgnoreBuildResult() || result != Result.ABORTED && result != Result.FAILURE); } public BuildStepMonitor getRequiredMonitorService() { @@ -364,7 +382,7 @@ public void perform(@Nonnull Run build, @Nonnull FilePath workspace, @Nonnu result.getNumberErrorsAccordingConfiguration(severityEvaluation, true), severityEvaluation); - if (buildResult != Result.SUCCESS) { + if (config.getDontUpdateBuildResult() || buildResult != Result.SUCCESS) { build.setResult(buildResult); } @@ -435,7 +453,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, result.getNumberErrorsAccordingConfiguration(severityEvaluation, true), severityEvaluation); - if (buildResult != Result.SUCCESS) { + if (config.getDontUpdateBuildResult() || buildResult != Result.SUCCESS) { build.setResult(buildResult); } diff --git a/src/main/java/org/jenkinsci/plugins/cppcheck/config/CppcheckConfig.java b/src/main/java/org/jenkinsci/plugins/cppcheck/config/CppcheckConfig.java index c92db26..714da8f 100644 --- a/src/main/java/org/jenkinsci/plugins/cppcheck/config/CppcheckConfig.java +++ b/src/main/java/org/jenkinsci/plugins/cppcheck/config/CppcheckConfig.java @@ -14,6 +14,8 @@ public class CppcheckConfig implements Serializable { private String pattern; private boolean ignoreBlankFiles; private boolean allowNoReport; + private boolean ignoreBuildResult; + private boolean dontUpdateBuildResult; private CppcheckConfigSeverityEvaluation configSeverityEvaluation = new CppcheckConfigSeverityEvaluation(); private CppcheckConfigGraph configGraph = new CppcheckConfigGraph(); @@ -30,6 +32,17 @@ public void setIgnoreBlankFiles(boolean ignoreBlankFiles) { public void setAllowNoReport(boolean allowNoReport) { this.allowNoReport = allowNoReport; } + + @DataBoundSetter + public void setIgnoreBuildResult(boolean ignoreBuildResult) { + this.ignoreBuildResult = ignoreBuildResult; + } + + @DataBoundSetter + public void setDontUpdateBuildResult(boolean dontUpdateBuildResult) { + this.dontUpdateBuildResult = dontUpdateBuildResult; + } + @DataBoundSetter public void setConfigSeverityEvaluation(CppcheckConfigSeverityEvaluation configSeverityEvaluation) { this.configSeverityEvaluation = configSeverityEvaluation; @@ -71,6 +84,14 @@ public boolean getAllowNoReport() { return allowNoReport; } + public boolean getIgnoreBuildResult() { + return ignoreBuildResult; + } + + public boolean getDontUpdateBuildResult() { + return dontUpdateBuildResult; + } + public CppcheckConfigSeverityEvaluation getConfigSeverityEvaluation() { return configSeverityEvaluation; }