-
Notifications
You must be signed in to change notification settings - Fork 4
154 lines (138 loc) · 5.68 KB
/
CICD.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: "Build"
on: [push, pull_request]
jobs:
Matrix:
runs-on: ubuntu-latest
steps:
- name: Generate Matrix
id: matrix
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
minimum_tf_version: '1.10.3'
additional_runners: 'macos-13, windows-2019'
- name: Output Matrix
run: |
echo "Strategy: ${{ steps.matrix.outputs.strategy }}"
outputs:
strategy: ${{ steps.matrix.outputs.strategy }}
Test:
needs: [Matrix]
strategy: ${{ fromJSON(needs.Matrix.outputs.strategy)}}
runs-on: ${{ matrix.runs-on }}
container: ${{ matrix.container }}
steps:
- name: Initialize - Pass
id: init-pass
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass
- name: Run Tests - Pass
id: tests-pass
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass
- name: Initialize - Pass (With Output)
id: init-pass-output
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-output
- name: Run Tests - Pass (With Output)
id: tests-pass-output
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-output
- name: Initialize - Pass - Condition Delayed
id: init-pass-condition-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-condition-delayed
- name: Run Tests - Pass - Condition Delayed
id: tests-pass-condition-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-condition-delayed
- name: Initialize - Pass - Message Delayed
id: init-pass-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-message-delayed
- name: Run Tests - Pass - Message Delayed
id: tests-pass-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-message-delayed
stderr_contains: Unsuitable value for error message
- name: Initialize - Pass - Condition & Message Delayed
id: init-pass-condition-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-condition-message-delayed
- name: Run Tests - Pass - Condition & Message Delayed
id: tests-pass-condition-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/pass-condition-message-delayed
- name: Initialize - Fail
id: init-fail
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail
- name: Run Tests - Fail
id: tests-fail
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail
stderr_contains: sample error
- name: Initialize - Fail (Output)
id: init-fail-output
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-output
- name: Run Tests - Fail (Output)
id: tests-fail-output
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-output
stderr_contains: sample error
- name: Initialize - Fail - Condition Delayed
id: init-fail-condition-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-condition-delayed
- name: Run Tests - Fail - Condition Delayed
id: tests-fail-condition-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-condition-delayed
stderr_contains: sample error
- name: Initialize - Fail - Message Delayed
id: init-fail-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-message-delayed
- name: Run Tests - Fail - Message Delayed
id: tests-fail-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-message-delayed
stderr_contains: Unsuitable value for error message
- name: Initialize - Fail - Condition & Message Delayed
id: init-fail-condition-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-condition-message-delayed
- name: Run Tests - Fail - Condition & Message Delayed
id: tests-fail-condition-message-delayed
uses: Invicton-Labs/terraform-module-testing/[email protected]
with:
tf_path: tests/fail-condition-message-delayed
stderr_contains: sample error
# This job just waits for all other jobs to pass. We have it here
# so our branch protection rule can reference a single job, instead
# of needing to list every matrix value of every job above.
Passed:
runs-on: ubuntu-latest
needs: [Test]
steps:
- name: Mark tests as passed
run: echo "🎉"