1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/vars/mavenExecuteStaticCodeChecks.groovy
Florian Geckeler bd92804745
Add static code checks stage (#1308)
* Add static code checks stage
* Rework go step to accept thresholds for the checks and fail maven build if above the thresholds
2020-03-30 15:59:59 +02:00

46 lines
1.7 KiB
Groovy

import com.sap.piper.ConfigurationLoader
import com.sap.piper.DownloadCacheUtils
import com.sap.piper.QualityCheck
import com.sap.piper.ReportAggregator
import groovy.transform.Field
import static com.sap.piper.Prerequisites.checkScript
@Field String METADATA_FILE = 'metadata/mavenStaticCodeChecks.yaml'
@Field String STEP_NAME = getClass().getName()
void call(Map parameters = [:]) {
final script = checkScript(this, parameters) ?: null
List credentials = []
parameters = DownloadCacheUtils.injectDownloadCacheInMavenParameters(script, parameters)
try {
piperExecuteBin(parameters, STEP_NAME, METADATA_FILE, credentials)
} catch (Exception exception) {
error("Maven Static Code Checks execution failed. Please examine the reports which are also available in the Jenkins user interface.")
}
finally {
showIssues(script)
}
}
private showIssues(Script script) {
Map configuration = ConfigurationLoader.stepConfiguration(script, STEP_NAME)
// Every check is executed by default. Only if configured with `false` the check won't be executed
if (!(configuration.spotBugs == false)) {
recordIssues(blameDisabled: true,
enabledForFailure: true,
aggregatingResults: false,
tool: spotBugs(pattern: '**/target/spotbugsXml.xml'))
ReportAggregator.instance.reportStaticCodeExecution(QualityCheck.FindbugsCheck)
}
if (!(configuration.pmd == false)) {
recordIssues(blameDisabled: true,
enabledForFailure: true,
aggregatingResults: false,
tool: pmdParser(pattern: '**/target/pmd.xml'))
ReportAggregator.instance.reportStaticCodeExecution(QualityCheck.PmdCheck)
}
}