Build WM Rollout Task
Build WM Rollout Task
Description
The Build WM Rollout Task builds a Rollout for regular WMS components. It builds an artifact that contains a complete rollout. The Rollout is build using all the files committed to Jira issues that in turn are linked to the Jira Release passed in to the build plan.
See the details of the build process below
Task Type
This task can only be used in build plans (not Deployment Plans)
Task Screen
Field | Description | Sample Data |
---|---|---|
Description | Description for this task. | Build WM Rollout |
Disable this task | To temporarily disable the task | |
Add condition to task | Add a condition to this task. More details here | |
Rollout Suffix | Text to append to Jira Version to create the rollout name. If left blank, the rollout name will be the same as the Jira Version. | -WM |
Include Files | Use this if we want to create a rollout for a subset of the repository. For example, if we want to create a REFS rollout, and the REFS code is in LES/refs_deploy, then this field should contain **/refs_deploy/** . If this field is left empty, as well as the 'Exclude' field, it will evaluate all files in the repository. | |
Exclude Files | Use this if we want to create a rollout for a subset of the repository. For example, if we want to create a WMS rollout, while we want to exclude REFS changes is in LES/refs_deploy, then this field should contain **/refs_deploy/** . If this field is left empty, as well as the 'Include' field, it will evaluate all files in the repository. | refs/** |
rollout.pl File | Specify a custom rollout.pl file to be used in the rollout. This allows for potentially different rollout.pl scripts in each rollout. The file name can be different than 'rollout.pl', but it will rename it to 'rollout.pl' in the resulting rollout package. If blank, it will use **/scripts/rollout.pl from the repository. |
Steps in the Build Process
- When the task 'Build WM Rollout' runs, the plugin goes through the following steps:
- When the build was triggered from a Jira release, Bamboo collects all Jira issues in this Jira release.
- Scan the Version Control repository for all commits that include the Jira Issue numbers from the list of Jira Issues.
- Collect all files that are linked to these commits
- Sort and filter these files, and only get the latest version of each file
- Create a Rollout package from the sorted and filtered files. The end result is a standard Rollout package that could potentially be installed using the regular (manual) installation process.
- The Rollout is stored as an artifact in Bamboo for furter processing in later steps
Added, Modified, Deleted and Renamed files
The Build Rollout task deals with files that were added, modified or renamed in the version control system.
It looks at the latest version of each file within a Version/Rollout and determines if the commit 'action' was an Add, Delete, Modify, Rename or Copy.
In case of an Add, Modify or Copy, we just add the file to the rollout, so it will add or replace the file in the target environment during installation.
In case of Delete, it will add a 'REMOVE' statement in the rollout install script (as opposed to the regular 'REPLACE' statement)
In case of a Rename action, it will add the new file name to the rollout as new file. In addition, it will place a 'REMOVE' entry in the rollout install script for the old file name.
How are Files Sorted
Once we have all the latest versions of each file, it is important that files are installed in a certain sequence. This is mostly relevant for .csv files or other configuration files that update data in the databse.
Two factors are important here:
- certain data uploads are dependent on other data uploads to exist
- older configurations should not overwrite more recent configurations (within the same rollout)