The following examples show how to configure a Matrix step. For more information about Matrix Pipeline steps, see Matrix
Example 1
This is an example of how to use the Matrix step to perform a build activity.
Matrix Step Example
pipelines:
- name: myPipeline
steps:
- name: matrix_example
type: Matrix
stepMode: Bash
configuration:
multiNode: true
stepletMultipliers:
environmentVariables: # Sets of environment variables for steplets
- animal: dog # - Set 1
mineral: copper
vegetable: carrot
- animal: goat # - Set 2
mineral: iron
vegetable: broccoli
- animal: lizard # - Set 3
mineral: lead
nodePools:
- gcp
- aws
runtimes: # Runtimes for steplets
- type: image
image:
auto:
language: java
versions:
- 13.0
- type: image
image:
auto:
language: node
versions:
- 8.17.0
execution:
onExecute:
- echo "I am executing matrix steplet ${steplet_id}"
- echo "Envs animal= $animal , mineral = $mineral , vegetable = $vegetable"
- echo "Runtime image name:$step_image_name | Runtime image tag:$step_image_tag"
When run, the above example will execute in a total of 6 steplets: in 2 runtimes for each of 3 sets of environment variables:
Runtime | Set 1 | Set 2 | Set 3 |
|---|---|---|---|
java 13.0 | dog, copper, carrrot | goat, iron, broccoli | lizard, lead, <null> |
node 8.17.0 | dog, copper, carrrot | goat, iron, broccoli | lizard, lead, <null> |
Example 2 - allowFailures, Exclude, fastFail
pipelines:
- name: S_Matrix_0052
steps:
- name: S_Matrix_0052
type: Matrix
stepMode: Bash
stepletMultipliers:
fastFail: true
allowFailures:
- environmentVariables:
delay: 1
fail: 'true'
- environmentVariables:
delay: 1
fail: 'true'
exclude:
- environmentVariables:
delay: 1
fail: 'true'
- environmentVariables:
delay: 1
fail: 'true'
environmentVariables:
- delay: 1
fail: 'true'
- delay: 2
fail: 'false'
- delay: 3
fail: 'false'
- delay: 5
fail: 'false'
execution:
onStart:
- sleep "$delay"
onExecute:
- echo "This is a matrix step"
- |
[ $fail == 'false' ]
- ls -l .Example 3 - concurrency
pipelines:
- name: matrix_check
steps:
- name: step1
type: Matrix
stepMode: Bash
configuration:
concurrency: 50
stepletMultipliers:
environmentVariables: # Sets of environment variables for steplets
- animal: dog # - Set 1
mineral: copper
vegetable: carrot
- animal: goat # - Set 2
mineral: iron
vegetable: broccoli
- animal: lizar1d # - Set 3
mineral: lea1d
- animal: liza2rd # - Set 3
mineral: le2ad
- animal: liza3rd # - Set 3
mineral: lea3d
- animal: liza4rd # - Set 3
mineral: lea4d
- animal: liza5rd # - Set 3
mineral: le5ad
- animal: liz6ard # - Set 3
mineral: lea6d
- animal: lizar7d # - Set 3
mineral: le7ad
- animal: lizar8d # - Set 3
mineral: lea8d
- animal: liza9rd # - Set 3
mineral: lea9d
- animal: liza10rd # - Set 3
mineral: lead10
- animal: liza11rd # - Set 3
mineral: lead11
- animal: liza12rd # - Set 3
mineral: lead12
- animal: lizar13d # - Set 3
mineral: lead13
- animal: d1og14 # - Set 1
mineral: copper14
vegetable: carrot14
- animal: go1at15 # - Set 2
mineral: ir1on15
vegetable: broccoli15
- animal: lizard16 # - Set 3
mineral: lead16
- animal: lizard17 # - Set 3
mineral: lead17
- animal: lizard18 # - Set 3
mineral: lead18
- animal: lizard19 # - Set 3
mineral: lead20
- animal: lizard20 # - Set 3
mineral: lead20
- animal: lizard21 # - Set 3
mineral: lead21
- animal: lizard22 # - Set 3
mineral: lead22
- animal: lizard23 # - Set 3
mineral: lead23
- animal: lizard24 # - Set 3
mineral: lead24
- animal: lizard25 # - Set 3
mineral: lead25
- animal: lizard26 # - Set 3
mineral: lead26
- animal: lizard27 # - Set 3
mineral: lead27
- animal: lizard28 # - Set 3
mineral: lead28
- animal: dog29 # - Set 1
mineral: copper29
vegetable: carrot29
- animal: goat30 # - Set 2
mineral: iron30
vegetable: broccoli30
- animal: lizard31 # - Set 3
mineral: lead31
- animal: lizard32 # - Set 3
mineral: lead32
- animal: lizard33 # - Set 3
mineral: lead33
- animal: lizard34 # - Set 3
mineral: lead34
- animal: lizard35 # - Set 3
mineral: lead35
- animal: lizard36 # - Set 3
mineral: lead36
- animal: lizard37 # - Set 3
mineral: lead37
- animal: lizard38 # - Set 3
mineral: lead38
- animal: lizard39 # - Set 3
mineral: lead39
- animal: lizard40 # - Set 3
mineral: lead40
- animal: lizard41 # - Set 3
mineral: lead41
- animal: lizard42 # - Set 3
mineral: lead42
- animal: lizard43 # - Set 3
mineral: lead43
- animal: dog44 # - Set 1
mineral: copper44
vegetable: carrot44
- animal: goat45 # - Set 2
mineral: iron45
vegetable: broccoli45
- animal: lizard46 # - Set 3
mineral: lead46
- animal: lizard47 # - Set 3
mineral: lead47
- animal: lizard48 # - Set 3
mineral: lead48
- animal: lizard49 # - Set 3
mineral: lead49
- animal: lizard50 # - Set 3
mineral: lead50
execution:
onExecute:
- echo "I am executing matrix steplet ${steplet_id}"
- echo "Envs animal= $animal , mineral = $mineral , vegetable = $vegetable