This tutorial is intended to help you get started with DevOps as Code in XL Release. It describes how to generate a DevOps as Code YAML file from an existing XL Release template and manage it in source control.

Prerequisites

For this tutorial, you need:

  • A running XL Release server
  • The XL CLI client

Modify an existing template as code

This tutorial assumes you have an existing template in XL Release. In this example, we will use the bundled templates in the Samples & Tutorials folder, but you can easily substitute them with templates of your own.

First, we will generate a YAML file from the template using the XL CLI.

Use the following command:

$ xl generate -f sample-release.yaml -o -p 'Samples & Tutorials/Sample Release Template with XL Deploy' -s xl-release

This will create a file called sample-release.yaml.

Open the file in your favorite editor. The first lines should look like this:

---
apiVersion: xl-release/v1
kind: Templates
spec:
- name: Sample Release Template with XL Deploy
  type: xlrelease.Release
  description: Major and minor release template.
  scheduledStartDate: 2018-11-12T09:00:00Z
  phases:
  - name: QA
    type: xlrelease.Phase
    tasks:
    - name: Wait for dependencies
      type: xlrelease.GateTask
      team: Release mgmt.

The YAML file is generated without any folder information. Change the header section to point to the folder it’s coming from, so we will be updating the original template when sending it back.

apiVersion: xl-release/v1
kind: Templates
metadata:
  home: Samples & Tutorials
spec:
  ...

Now change the line that says:

    - name: Wait for dependencies

To the following:

    - name: Wait for development to finish

Use the xl apply command to send the file back to XL Release:

$ xl apply -f sample-release.yaml

Check the template in the XL Release UI. The title of the first task should now read “Wait for development to finish”.

Store the template in source control

The next step is to store the DevOps as Code YAML file in source control and have the changes applied automatically by your favorite build tool.

See Using XL wrapper scripts for details on how to do this.