One of key facets of continuous delivery is to have a capability to promote a user story to any environment at any time as it passes the quality and compliance guidelines. It helps business get prioritized deliverables faster into the market than wait for long and big bang production deployment cycles.
AutoRABIT 20.1 release has brought in a new dimension to accomplish this agile user story deployments. With this new ALM capability, AutoRABIT administrators can setup CI Jobs to deploy user stories based on a particular ALM status ( Jira / VersionOne etc.,) from a GIT branch into Salesforce environments and AutoRABIT will fetch all the commits or merges belonging to that particular story from the GIT branch, create an automated release label internally and deploy those changes into Salesforce Sandbox or Production Org.
- Salesforce Sandboxes/ Orgs should be configured in AutoRABIT
- Jira Integration in-place ( Both Kanban and Scrum boards are supported)
- GIT repository is registered with branching in-place.
- Jira Project is mapped to the Development Sandboxes.
High-Level Process Flow for deployments based on User story status
Step1: EZ-Commit a User Story to GIT Branch
Developers commit changes using Ez-commit and select the respective User Story at the time of commit as shown below:
Once, the changes for the user story passes through the check-in gate with validations and approvals and the commit is done is GIT, AutoRABIT as a post-commit operation will update the user story with the details of validation results, GIT Commit revision and also the Status of the User Story will be set as per the ALM Work Item Status below.
Step2: EZ-Merge a user story into a GIT branch
The Changes from the feature branches are merged into a release branch with AutoRABIT EZ-merge.
During this merge, it is important for Developers select the respective user story at the time of merge as shown below
Once the commit goes through the merge pre-approval process, passes the validation results then the change will be merged into the GIT branch.
Post-commit as show above, the Work Item Status will be updated accordingly. ( In this case, it will be updated from Dev Complete to Ready for QA)
Step3: Configure a CI Job to deploy the Changes of the user stories on a particular status
In our case, we will configure a CI Job to deploy all the user stories with status “Ready for QA” into the QA environment.
- Configure the “Build” section of CI Job with the option: “Map ALM Project(Jira)”
- Choose the GIT branch ( source) that is supposed to contain the commits that needs to be deployed into the particular Salesforce environment.
- In the “ALM” section of the CI Job choose the following: ( This is where magic happens !!)
- The current sprint
- The Work Item Types that you wish to deploy ( All Items option is also there.)
- Set the Status of the user stores where deployment is attempted ( both in case of successful deployment or incase of failed deployment)
Save and Run the CI Job.
When the CI Job is run, here is the sequence of steps that will happen:
- AutoRABIT will fetch the list of workitems of the particular sprint with a particular status as configured above.
- AutoRABIT CI Job will fetch all the commits related to these user stories from the GIT Branch
- It will create a intelligent deployment bundle consolidating all the changes ( like update multiple permissions of a given profile from multiple commits) referred as release label.
- This release label will be deployed in the destination Salesforce environment.
Benefits of deployment automation based on User Story Status
- Zero Spreadsheets – There is no need for developers maintain spreadhseets with cryptic Git commit revisions and a release manager need consolidate all these commits.
- Zero effort with deployment packages – Creating consolidate deployment packages with changes for same profile in multiple commits, changes to shared objects is a nightmare for release management teams and is error prone. This approach automatically creates deployment packages for the qualified user stories saving hours of time for the release teams
- 10X faster deployments – With pre-validations before the commit and before the merged changes being pushed into GIT, the time and effort being put in for a successful deployment will be reduced significantly
- ALM is the source of audit – The life cycle of a requirement starts with being a user story in your Jiras of the world. Having information about deployment history, GIT commit history, validation results, review information stored back into your user story in ALM will ensure that at any point of you can trace the roots of the changes done for the user story.
This feature of automated deployments based on user story status is a great step for enterprises who have progressed with continuous integration and looking towards a higher maturity in their DevOps Journey.
This capability to promote and deploy a user story at any time to any environment as it passes the qualification guidelines is a key milestone to accomplish in your journey of continuous delivery of Salesforce applications.