Conditions (original) (raw)

You can use a switch block as a selection mechanism that allows the value of an expression to control the flow of a workflow's execution. If a value matches, that condition's statement is executed.

If no matching expression is found, the workflow looks for an optional default condition: - condition: true. This should be the last condition in theswitch block as they are evaluated in order and the first match found is executed. If there is neither a match nor a default condition, the workflow continues execution with the step that immediately follows.

Each switch block can include a maximum of 50 conditions. Each expression must evaluate to true or false. (Learn how to define and use expressions.)

For example, you can control the order of a workflow's execution by using aswitch block to jump between steps based on a conditional expression:

YAML

JSON

[ { "STEP_NAME_A": { "switch": [ { "condition": "${EXPRESSION_A}", "next": "STEP_NAME_B" }, { "condition": "${EXPRESSION_B}", "next": "STEP_NAME_C" } { "condition": true, "next": "STEP_NAME_C" } ], "next": "STEP_NAME_D" } } ]

You can also nest multiple steps inside a switch block:

YAML

JSON

[ { "STEP_NAME_A": { "switch": [ { "condition": "${EXPRESSION}", "steps": [ { "STEP_NAME_B": { ... } }, { "STEP_NAME_C": { ... } } ] } ], "next": "STEP_NAME_D" } } ]

Note that the steps block is optional. It can contain the following:

For more information about defining a workflow's order of execution, seeJumps andControl the order of execution in a workflow.

Samples

These samples demonstrate the syntax.

Conditional jumps to specific steps

You might want a workflow to jump to a specific step when a condition is met. These two samples execute steps depending on the value returned by the first step of the workflow.

YAML

JSON

YAML

JSON

Switch structure with embedded steps

A switch structure can also be used to support direct execution of steps when a condition is met, without jumping to other steps. This improves the readability of a workflow by reducing the number of steps in the workflow definition.

YAML

JSON