Create a deployment checklist

To ensure the quality of a deployment pipeline, you can optionally associate environments in the pipeline with a checklist that each deployment package must satisfy before being deployed to the environment. This topic describes how to create a deployment checklist for an environment.

Note: For an application to appear on the release dashboard, it must be associated with a deployment pipeline. For more information, see Create a development pipeline

Step 1 - Define checklist items on udm.Environment

Define all of the items that you want to add to a deployment checklist as type modifications on configuration item (CI) types in the synthetic.xml file.

Add each checklist item as a property on the udm.Environment CI. The property name must start with requires, and kind must be boolean. The category can be used to group items.

For example:

<type-modification type="udm.Environment">
  <property name="requiresReleaseNotes" description="Release notes are required" kind="boolean" required="false" category="Deployment Checklist" />
  <property name="requiresPerformanceTested" description="Performance testing is required" kind="boolean" required="false" category="Deployment Checklist" />
  <property name="requiresChangeTicketNumber" description="Change ticket number authorizing deployment is required" kind="boolean" required="false" category="Deployment Checklist" />
</type-modification>

Step 2 - Define corresponding properties on udm.Version

Add a corresponding property to the udm.Version CI type. This means that all deployment packages will have a property that satisfy the checklist item you created. Property name must start with satisfies. kind can be boolean, integer, or string. In the case of an integer or string, the check will fail if the field in the checklist is not empty.

For example:

<type-modification type="udm.Version">
  <property name="satisfiesReleaseNotes" description="Indicates the package contains release notes" kind="boolean" required="false" category="Deployment Checklist"/>
  <property name="rolesReleaseNotes" kind="set_of_string" hidden="true" default="senior-deployer" />
  <property name="satisfiesPerformanceTested" description="Indicates the package has been performance tested" kind="boolean" required="false" category="Deployment Checklist"/>
  <property name="satisfiesChangeTicketNumber" description="Indicates the change ticket number authorizing deployment to production" kind="string" required="false" category="Deployment Checklist">
    <rule type="regex" pattern="^[a-zA-Z]+-[0-9]+$" message="Ticket number should be of the form JIRA-[number]" />
  </property>
</type-modification>

Repeat this process for each checklist item that you want available for deployment checklists. Save the synthetic.xml file and restart the XL Deploy server.

Assign security roles to checks

Optionally, you assign security roles to checks. Only users with the specified role can satisfy the checklist item. You can specify multiple roles in a comma-separated list.

Roles are defined as extensions of the udm.Version CI type. The property name must start with roles, and the kind must be set_of_string. Also, the hidden property must be set to true.

Note: The admin user is can satisfy checks in a checklist.

Step 3 - Create a deployment checklist for an environment

To build a checklist a checklist for a specific environment:

  1. Log in to XL Deploy.

  2. In the top navigation bar, click Explorer.

  3. Expand Environments and double-click an environment.

  4. Go to the Deployment Checklist section and select the items you want to include in the environment checklist.

    Add items to an environment's checklist

  5. Click Save.

  6. Expand an application with a deployment pipeline, and include the environment edited, and click one of the application versions. Note: For more information on pipelines, see create a development pipeline. On the environment tile, you can see the Deployment checklist option.

    Checklist on the environment tile

  7. Click Deployment checklist to see the items.

    Checklist items dialog

Deployment checklist verification

Deployment checklists are verified at two points during a deployment:

  • When a deployment is configured.
  • When a deployment is executed.

When configuring a deployment, XL Deploy validates that all checks for the environment have been met for the deployment package you selected. This validation happens when XL Deploy calculates the steps required for the deployment.

Any deployment of a package to an environment with a checklist contains an additional step at the start of the deployment. This step validates that the necessary checklist items are satisfied and writes confirmation of this to the deployment log. An administrator can verify these later if necessary.

Verification on package import

The checks in deployment checklists are stored in the udm.Version CI. When you import a deployment package (DAR file), checklist properties can be initially set to true, depending on their values in the package manifest file.

XL Deploy can verify checklist properties on imported and apply the these validations upon deployment.

In the hidden property verifyChecklistPermissionsOnCreate on udm.Application, set hidden to false:

<type-modification type="udm.Application">
    <property name="verifyChecklistPermissionsOnCreate" kind="boolean" hidden="false" required="false" description="If true, permissions for changing checklist requirements will be checked on import"/>
</type-modification>

You can control the behavior by setting the value to true or false on the application in the repository. false is the default behavior, and true means that the validation checks are done during import. Every udm.Application CI can have a different value.

Note: If you want to configure this behavior but you have not imported any applications, create a placeholder application under which deployment packages will be imported, and set the value there.