For the complete documentation index, see llms.txt. This page is also available as Markdown.

Parallel

A Parallel step group runs multiple steps simultaneously. Use it to cut wall-clock time by executing independent tasks at the same time.

A Parallel step group runs all its steps at the same time. Use it to speed up your pipeline when steps do not depend on each other, for example, running tests against multiple environments simultaneously.

What you will learn

  • How a Parallel step group runs multiple steps simultaneously to reduce wall-clock time

  • How to apply timeout, on-failure, strategy, and conditional execution to the group as a unit

  • How failure of one step in the group affects the rest


YAML

stages:
  - name: build
    id: build
    steps:
      - name: parallel-group
        id: parallel_group
        parallel:
          steps:
            - name: task-a
              id: task_a
              run:
                script: ./task-a.sh
            - name: task-b
              id: task_b
              run:
                script: ./task-b.sh

All steps inside parallel.steps start at the same time. The group completes when all steps finish. If any step fails, the group's on-failure rule applies.


Advanced settings

The parallel group supports all step-level advanced settings. These apply to the group as a whole. The default timeout is 2h.

Timeout

Terminates the entire group if it exceeds the specified duration. When a group times out, it is marked as Expired.

On failure

Controls what happens when any step inside the group fails:

Strategy

Loops the entire group using a matrix, for, or while strategy. Each iteration runs all steps in parallel:

Conditional execution

Skips the entire group based on a JEXL condition:


Next steps

  • Go to Steps overview to review step types and common advanced settings.

  • Go to Group to run steps sequentially inside a named container.

  • Go to On failure to configure failure handling.

  • Go to Strategy to loop a group across values.

Last updated

Was this helpful?