The Pipeline matrix

Usage

A matrix basically has a name and assigned environment variables. The purpose is to support that same pipeline can run for different parameters. Examples are running with different compilers, interpreters or databases. In addition you can specify tags which allow to filter for certain matrix runs.

matrix:
    - name: one
      env:
        mode: one
      tags:
        - first

    - name: two
      env:
        mode: two
      tags:
        - second

With this example you can filter for second matrix item like this:

pipeline --definition=example.yaml --matrix-tags=second

Parallelization

While matrix as well as matrix(ordered) are representing ordered pipeline execution you also can specify matrix(parallel). Using parallel all specified matrix items (pipeines) are running in parallel. Parallel matrixs and parallel tasks can be combined.

Be aware that parallelization works just as good as many cpu you have and as less competition.