-
Notifications
You must be signed in to change notification settings - Fork 6
78 lines (70 loc) · 1.73 KB
/
dynamic-matrices.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
name: 'Dynamic matrices'
on:
push:
paths: [ '.github/workflows/dynamic-matrices.yml' ]
pull_request_target:
paths: [ '.github/workflows/dynamic-matrices.yml' ]
jobs:
generate-matrix:
name: Generate
runs-on: ubuntu-latest
outputs:
json: ${{ steps.generate.outputs.json }}
steps:
- id: generate
run: |
ITEMS=('a' 'b' 'c')
JSON=$(printf '%s\n' "${ITEMS[@]}" | jq -R . | jq -sc .)
echo $JSON
echo "::set-output name=json::$JSON"
dynamic:
name: Dynamic
runs-on: ubuntu-latest
needs: generate-matrix
strategy:
matrix:
items: ${{ fromJson(needs.generate-matrix.outputs.json) }}
steps:
- run: true
hybrid:
name: Hybrid
runs-on: ubuntu-latest
needs: generate-matrix
strategy:
matrix:
items: ${{ fromJson(needs.generate-matrix.outputs.json) }}
options: ['a', 'b']
steps:
- run: true
hybrid-exlusions:
name: 'Hybrid w/ exclusions'
runs-on: ubuntu-latest
needs: generate-matrix
strategy:
matrix:
items: ${{ fromJson(needs.generate-matrix.outputs.json) }}
options: ['a', 'b']
exclude:
- items: 'a'
- items: 'b'
options: 'b'
steps:
- run: true
hybrid-exclusion-inclusions:
name: 'Hybrid w/ exclusions/inclusions'
runs-on: ubuntu-latest
needs: generate-matrix
strategy:
matrix:
items: ${{ fromJson(needs.generate-matrix.outputs.json) }}
options: ['a', 'b']
exclude:
- items: 'a'
- items: 'b'
options: 'b'
include:
- items: 'd'
- items: 'e'
options: 'c'
steps:
- run: true