...
Code Block | ||
---|---|---|
| ||
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.