Continuous Delivery and Deployment with Code Pipeline CI/CD
After build, testing, and quality checks, the next stage in the CI/CD pipeline is delivery and deployment. Code Pipeline integrates tightly with popular CI/CD orchestrators (Jenkins, Azure DevOps, GitHub Actions, and XL Release) and can be driven via CLI or REST APIs. This ensures that deployments to higher environments are automated, traceable, and controlled, while still allowing for manual approvals and fallback options when required.
Deployment by using the Jenkins plug-in
For teams using Jenkins, the Code Pipeline Operations plugin provides built-in steps to perform deployments directly within a pipeline.
- Use the ispwOperation step with the action DeployAssignment or DeployRelease.
- The plugin handles CES connection, authentication, and JSON payload formatting.
Example of deploy assignment:
connectionId: 'CES_Conn',
credentialsId: 'CES_Token',
ispwAction: 'DeployAssignment',
ispwRequestBody: """
runtimeConfiguration=${ISPW_Runtime}
assignmentId=${ISPW_Assignment}
level=${ISPW_Target_Level}
"""
)
You can validate the deployment status in Jenkins logs, and notifications sent to developers or release managers
Deployment by using the Azure DevOps extension
In Azure DevOps, you can deploy by using the BMC AMI DevX Code Pipeline Operations extension.To deploy by using this extension, add Add a Deploy task in your .azure-pipelines.yml.
Example of YAML snippet:
inputs:
action: 'DeployAssignment'
connectionId: 'CES_Conn'
credentials: 'CES_Token'
assignmentId: '$(ISPW_Assignment)'
level: 'QA'
Azure Pipelines can chain deploy > approve > promote flows by using task conditions .
REST API or CLI deployment
For maximum flexibility, Code Pipeline supports deployments via REST API calls or Workbench CLI commands.
- The REST API endpoint is as follows:
POST /ispw/{runtimeConfiguration}/assignments/{assignmentId}/deploy
Authenticated using CES token or certificate. - An example of a CLI command is as follows:
ispwcli deploy --assignment ASSIGN123 --level QA --runtimeConfig ISPW - The CLI option is useful when agents:
- Cannot install Jenkins and Azure plug-ins.
- You must integrate by using custom orchestrator.
Fallback and rollback operations
Every automated deployment must have a rollback strategy. Code Pipeline provides regress and fallback actions that can be automated in the pipeline .
- RegressAssignment: Rolls back an assignment to its previous level.
- FallbackRelease: Rolls back a release if deployment fails.
Jenkins example:
connectionId: 'CES_Conn',
credentialsId: 'CES_Token',
ispwAction: 'RegressAssignment',
ispwRequestBody: """
assignmentId=${ISPW_Assignment}
level=${ISPW_Target_Level}
"""
)
These steps can be conditionally executed when quality gates fail or deployment jobs fail.
Manual Approvals for Higher Environment
Although lower environments (DEV, QA) are often automated, deployments to UAT, STG, and PROD usually require manual approval.
- Integrate Jenkins input steps or Azure DevOps approval gates.
- Example (Azure DevOps):
- Add an Approval Gate before the PROD deployment stage.
- Ensures compliance and governance while still benefiting from automation.
XL release integration (Enterprise CD Orchestration)
For enterprise-scale CD, BMC integrates with XL Release to manage cross-platform deployments.
- Use the XL Release plug-in in Jenkins (xlrCreateRelease) to trigger release templates.
Snippet example:
releaseTitle: "Mainframe Release ${BUILD_TAG}",
serverCredentials: "${XLR_User}",
startRelease: true,
template: "${XLR_Template}",
variables: [
[propertyName: 'ISPW_RELEASE_ID', propertyValue: "${ISPW_Release}"],
[propertyName: 'CES_Token', propertyValue: "${CES_Token}"]
]
)
XL Release templates coordinate deployments across mainframe, distributed, and cloud applications for true end-to-end delivery .