Concourse

On this page:

aggregate step

aggregate: [step]

Performs the given steps in parallel.

If any sub-steps in an aggregate result in an error, the aggregate step as a whole is considered to have errored.

Similarly, when aggregating task steps, if any fail, the aggregate step will fail.

Examples

Build Matrix

If any step in the aggregate fails, the build will fail, making it useful for build matrices:

plan:
- get: some-repo
- aggregate:
  - task: unit-windows
    file: some-repo/ci/windows.yml
  - task: unit-linux
    file: some-repo/ci/linux.yml
  - task: unit-darwin
    file: some-repo/ci/darwin.yml

Parallel Fetching

The aggregate step is also useful for performing arbitrary steps in parallel, for the sake of speeding up the build. It is often used to fetch all dependent resources together:

plan:
- aggregate:
  - get: component-a
  - get: component-b
  - get: integration-suite
- task: integration
  file: integration-suite/task.yml