Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagegroovy
def call(
    def COMPLIANCE_REPO_CREDENTIALS,
    def COMPLIANCE_REPO_URL,
    def RULESDIR,
    def TESTSUITENAME,
    def CONTINUEONFAIL
) {
    try {
        //# Perform a 'git checkout' of a remote repository which is NOT the repository from which this pipeline code was sourced
        checkout COMPLIANCE_REPO_URL using COMPLIANCE_REPO_CREDENTIALS 

        //# Executes the 'mettleci compliance test' command to test your repository's DataStage jobs against your Compliance rules.
        //# Note that 'mettleci compliance test' is not the same as 'mettleci compliance query' - See the documentation for more details. 
        mettleci compliance test $RULESDIR $TESTSUITENAME

    } finally {

      # Publish CCMT output as JUnit Test Results in the event of an error
      # See Jenkins JUnit plugin documentation.
      junit testResults "compliance_report_${TESTSUITENAME}.xml"        # Publish Unit Test results
     }   allowEmptyResults: true                 catch(e) {         junit testResults "compliance_report_${TESTSUITENAME}.xml"        # Publish Unit Test results
    Don't fail the build on missing test result files or empty test results
        skipPublishingChecks: true     throw e                            # Don't automatically publish test results to Git
        skipMarkingBuildUnstable: (CONTINUEONFAIL)                  # Propagate error for downstream error handling (Optionally) mark the build as successful,even if there are test failures reported
    }
}

Note that this Custom Step makes used of Jenkins' JUnit plugin.