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
currentBuild
is the meta object pointing to the current buildkey
is used to uniquely identify a task within a build, It should not contain blankspace and non alphanumerical chars.title
is the friendly title to be displayed to the userprocess
is 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 seconds
error_eval
is 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
path
is 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
currentBuild
is 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
env
is the global env object that can be accessed during the buildcurrentBuild
is 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
dir
String - Any directory name. (Default . (Current Directory) if not provide any files)files
List - Any file name. Ex: Dockerfile/Something.txt . Only run if not provide any d (directory)stageResult
String - FAILURE/UNSTABLE/SUCCESS. Change the stage result if checkov gets any error. Default FAILUREreport_file_name
String - change the default report file name. Default $BUILD_NUMBER-report.txtskip_check
List - list of checkov check list. Ex: [”CKV_DOCKER_2”, “CKV_DOCKER_5”]. It will skip those check while checkingignore_list
List - list of ignore directory/file list. Ex: [”dir1”, “code”, “file1”]. It will ignore those directories/files while checkingquiet
Boolean - If true then it will only return failed report. Default falsecompact
Boolean - 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
file
String - Any file name. Ex: Dockerfile/Something.txt . Default DockerfilestageResult
String - FAILURE/UNSTABLE/SUCCESS. Change the stage result if checkov gets any error. Default FAILUREreport_file_name
String - change the default report file name. Default $BUILD_NUMBER-report.txtskip_check
List - list of checkov check list. Ex: [”CKV_DOCKER_2”, “CKV_DOCKER_5”]. It will skip those check while checkingquiet
Boolean - If true then it will only return failed report. Default falsecompact
Boolean - 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_name
String - 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