Skip to main content

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)

Build WM Rollout
Build WM Rollout

Task Screen

Build WM Rollout Configuration
Build WM Rollout Configuration
FieldDescriptionSample Data
DescriptionDescription for this task.Build WM Rollout
Disable this taskTo temporarily disable the task
Add condition to taskAdd a condition to this task. More details hereopen in new window
Rollout SuffixText 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 FilesUse 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 FilesUse 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 FileSpecify 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 artifactopen in new window 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)
Last update:
Contributors: Pieter Hartog