github.com/jaylevin/jenkins-library@v1.230.4/vars/mavenExecuteStaticCodeChecks.groovy (about)

     1  import com.sap.piper.BuildTool
     2  import com.sap.piper.ConfigurationLoader
     3  import com.sap.piper.DownloadCacheUtils
     4  import com.sap.piper.QualityCheck
     5  import com.sap.piper.ReportAggregator
     6  import groovy.transform.Field
     7  
     8  import static com.sap.piper.Prerequisites.checkScript
     9  
    10  @Field String METADATA_FILE = 'metadata/mavenExecuteStaticCodeChecks.yaml'
    11  @Field String STEP_NAME = getClass().getName()
    12  
    13  void call(Map parameters = [:]) {
    14      final script = checkScript(this, parameters) ?: null
    15      List credentials = []
    16      parameters = DownloadCacheUtils.injectDownloadCacheInParameters(script, parameters, BuildTool.MAVEN)
    17  
    18      try {
    19          piperExecuteBin(parameters, STEP_NAME, METADATA_FILE, credentials)
    20      } catch (Exception exception) {
    21          error("Maven Static Code Checks execution failed. Please examine the reports which are also available in the Jenkins user interface.")
    22      }
    23      finally {
    24          showIssues(script)
    25      }
    26  }
    27  
    28  private showIssues(Script script) {
    29      Map configuration = ConfigurationLoader.stepConfiguration(script, STEP_NAME)
    30      // Every check is executed by default. Only if configured with `false` the check won't be executed
    31      if (!(configuration.spotBugs == false)) {
    32          recordIssues(blameDisabled: true,
    33              enabledForFailure: true,
    34              aggregatingResults: false,
    35              tool: spotBugs(pattern: '**/target/spotbugsXml.xml'))
    36  
    37          ReportAggregator.instance.reportStaticCodeExecution(QualityCheck.FindbugsCheck)
    38      }
    39      if (!(configuration.pmd == false)) {
    40          recordIssues(blameDisabled: true,
    41              enabledForFailure: true,
    42              aggregatingResults: false,
    43              tool: pmdParser(pattern: '**/target/pmd.xml'))
    44          ReportAggregator.instance.reportStaticCodeExecution(QualityCheck.PmdCheck)
    45      }
    46  }