Utils library
Status to Bitbucket
Available since 1.0
Keep track of a step status in the CVS
Signature
utils.build_notify(currentBuild, String key, String title, Closure process, Closure error_eval = null)
Parameter
currentBuildis the meta object pointing to the current buildkeyis used to uniquely identify a task within a build, It should not contain blankspace and non alphanumerical chars.titleis the friendly title to be displayed to the userprocessis the wrapped steps to be taken for this step to complete. it is possible to return a string to override the step annotation, i.e:Completed in 12 secondserror_evalis the wrapped steps to be taken to evaluate an error annotation and return it as a string , i.e:The Jira ticket was not approved(Optional)
Examples
Simple usage:
utils.build_notify(currentBuild, 'my-tak-key', "My Task"){
sh "echo proceed"
}
Step annotation usage:
utils.build_notify(currentBuild, 'my-tak-key', "My Task"){
if (my_var == "yes"){
sh "echo proceed"
return "Process was approved"
} else {
throw Exception("This wasn't approved")
}
} {
return "${my_other_var} wasn't approved to proceed."
}
Artifact generation
Available since 1.1
Create a new artifact that can be reused by a CD pipeline
Signature
artifacts.create_artifact(String path)
Parameter
pathis the path to the folder from which the artifact needs to be created
Examples
Simple usage using utils.build_notify:
utils.build_notify(currentBuild, 'my-packaging-step', "Deliver artifact"){
sh 'mkdir -p build && echo generated > build/output.txt'
artifacts.create_artifact('build')
}
Get current M2A version
Available in 1.0 with library artifacts
Get the current version for which the active pipeline is running
Signature
artifacts.get_version(currentBuild)
Parameter
currentBuildis the meta object pointing to the current buildReturn value is a string containing the version, i.e:
20.11~beta~352
Examples
Simple usage using utils.build_notify and artifacts.create_artifact:
utils.build_notify(currentBuild, 'my-packaging-step', "Deliver artifact"){
sh "mkdir -p build && echo 'Current build is ${artifacts.get_version(currentBuild)}' > build/output.txt"
artifacts.create_artifact('build')
}
Get current semantic version
Available in 1.0 with library artifacts
Get the current version for which the active pipeline is running
Signature
get_semantic_version()
Parameter
envis the global env object that can be accessed during the buildcurrentBuildis the meta object pointing to the current buildReturn value is a string containing the semantic version, i.e:
1.2.3
Examples
Simple usage using utils.build_notify:
utils.build_notify(currentBuild, 'my-packaging-step', "Deliver artifact"){
sh "mkdir -p build && echo 'Current build is ${get_semantic_version(env, currentBuild)}' > build/output.txt"
artifacts.create_artifact('build')
}
Check Terraform with Checkov
Available in 1.5 with library utils
Note: You have to instann checkov inside your pipeline Dockerfile. Ex:
RUN pip3 install checkov
Signature
utils.check_terraform(Map params = [:])
Creates an analysis report from Dockerfile or other file and attach the report to the pipeline as an Archive
Only accept the below parameters as Map
Parameter
dirString - Any directory name. (Default . (Current Directory) if not provide any files)filesList - Any file name. Ex: Dockerfile/Something.txt . Only run if not provide any d (directory)stageResultString - FAILURE/UNSTABLE/SUCCESS. Change the stage result if checkov gets any error. Default FAILUREreport_file_nameString - change the default report file name. Default $BUILD_NUMBER-report.txtskip_checkList - list of checkov check list. Ex: [”CKV_DOCKER_2”, “CKV_DOCKER_5”]. It will skip those check while checkingignore_listList - list of ignore directory/file list. Ex: [”dir1”, “code”, “file1”]. It will ignore those directories/files while checkingquietBoolean - If true then it will only return failed report. Default falsecompactBoolean - If true then it remove code from the report. Default falseOutcome Function will attach the report file to the pipeline by archiveArtifacts
Examples
Simple usage using:
utils.check_terraform()
Note: This will check everything (tf files, Dockerfile, docker-compose, k8s, etc.) from the current location and
retates a report file named <CURRENT_BUILD>-report.txt
Check only Terraform folder:
utils.check_terraform('dir' : 'Terraform', "report_file_name": "my-custom-report-file.txt")
Note: This will check everything (tf files, Dockerfile, docker-compose, k8s, etc.) from the Terraform folder and
retates a report file named my-custom-report-file.txt
Check some tf/Others files:
utils.check_terraform('files' : ['file1.tf', 'main.tc', 'dockerfile', 'V1/main.tf')
Note: This will check only those files and
retates a report file named <CURRENT_BUILD>-report.txt
Check with ignore_list:
utils.check_terraform('ignore_list' : ["ignore1", "file1", "ignore_dir"])
utils.check_terraform('d' : "TF_files", 'ignore_list' : ["ignore1", "file1", "ignore_dir"])
Note: This will check everyting from current location/TF_files location except the ignore_list files/folder and
retates a report file named <CURRENT_BUILD>-report.txt
Check Dockerfile with Checkov
Available in 1.5 with library utils
Note: You have to instann checkov inside your pipeline Dockerfile. Ex:
RUN pip3 install checkov
Signature
utils.check_dockerfile(Map params = [:])
Creates an analysis report from Dockerfile or other file and attach the report to the pipeline as an Archive
Only accept the below parameters as Map
Parameter
fileString - Any file name. Ex: Dockerfile/Something.txt . Default DockerfilestageResultString - FAILURE/UNSTABLE/SUCCESS. Change the stage result if checkov gets any error. Default FAILUREreport_file_nameString - change the default report file name. Default $BUILD_NUMBER-report.txtskip_checkList - list of checkov check list. Ex: [”CKV_DOCKER_2”, “CKV_DOCKER_5”]. It will skip those check while checkingquietBoolean - If true then it will only return failed report. Default falsecompactBoolean - If true then it remove code from the report. Default falseOutcome Function will attach the report file to the pipeline by archiveArtifacts
Examples
Simple usage using:
utils.check_dockerfile()
Note: This will check Dockerfile from the current location and
retates a report file named <CURRENT_BUILD>-Dockerfile-report.txt
Check another file:
utils.check_dockerfile('file' : 'a-file-name.txt', "report_file_name": "my-custom-report-file.txt")
Note: This will check a-file-name.txt from the current location and
retates a report file named my-custom-report-file.txt
Check another file:
utils.check_dockerfile('file' : 'a-file-name.txt', "report_file_name": "my-custom-report-file.txt")
utils.check_dockerfile('file' : 'build/dockerfile', "skip_check": ["CKV_DOCKER_2", "CKV_DOCKER_5"])
Note: This will check build/dockerfile and
retates a report file named <CURRENT_BUILD>-build/dockerfile-report.txt
Add Git Tag for Deployed Environment
Available in 1.5 with library utils
Signature
utils.add_deploy_tag(String env_name)
Tags the latest commit for git repo at CWD with deployed/$env_name
Only accept the below parameters as String
Parameter
env_nameString - The name of the environment that has been deployed
Examples
Simple usage using:
utils.add_deploy_tag("prod")
Note: This will override the previous deployed/prod tag and apply it
to the latest commit
Tag for a different environment:
utils.add_deploy_tag("stable")
Note: This will override the previous deployed/stable tag and apply it
to the latest commit