Gate tasks

A Gate task contains conditions that must be fulfilled before the release can continue. There are two types of conditions: simple checkboxes and dependencies on other releases.

Gate Details

In the release flow editor, Gate tasks are marked with a red border.

Checkbox conditions

When you open a Gate task, you will see the checkbox conditions on the task. If you have the Edit task release permission, you can add a checkbox by clicking Add condition. To remove a condition, click the cross icon.

Checkboxes must be completed by users who are involved in the release. When a Gate task is active, it can only be completed after all of its checkboxes have been ticked indicating that the conditions are met. The Gate task will not automatically complete when the conditions are met. The task assignee must mark it as complete.

Checkboxes must be completed by users who are involved in the release. When a Gate task is active, it can only be completed after all of its checkboxes have been ticked indicating that the conditions are met. As of 9.7.0, the Gate task will be completed automatically when the conditions are met. This setting is enabled by default, running every 10 minutes and completing the task if the gate task has been executing longer than the graceDuration (5 minutes default).

Note: You can tweak the graceDuration as per your requirement, and have the gate task autocomplete after a desired amount of time.

You can add the configuration shown below to your xl-release.conf file, to disable this feature and have the gate tasks revert to their old behaviour.

xl {
  features {
    gate-actor {
      enabled = true
      graceDuration = 5 minutes
      unstuckInterval = 10 minutes
    }
  }
}

Dependencies

The Gate task also shows dependencies on other releases. A Gate task can wait on other releases, on the level of release, phase, or task.

To create a new dependency, click Add dependency. Click an existing dependency to edit it.

Select the conditions for the dependency:

  • The release the Gate will wait on (only current releases are displayed)
  • The release phase the Gate will wait on (optional)
  • The release task the Gate will wait on (optional)

If the Gate contains dependencies and no conditions, it completes automatically when all dependent releases, phases, or tasks are complete.

When a dependent task or release fails, the Gate does not fail. The Gate task waits until the release is restarted and the task is completed or skipped. A Gate fails if a release it depends on is aborted.

Using variables in dependencies

To use variables instead of direct release dependencies, click Switch to variable and select a variable of type text. Release searches for a release, phase, or task with the ID stored in the variable. If the ID is valid, the variable dependency is replaced with a normal dependency and the release proceeds as usual. If the ID is not valid, does not exist, or is empty, the Gate task fails.

You can use this feature in combination with the Create Release task to start a release and require the initial release to wait at the Gate until the new release is complete.