-
Notifications
You must be signed in to change notification settings - Fork 4
154 lines (138 loc) · 5.62 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/matrix@dev
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/initialize@dev
with:
tf_path: tests/pass
- name: Run Tests - Pass
id: tests-pass
uses: Invicton-Labs/terraform-module-testing/apply-destroy@dev
with:
tf_path: tests/pass
- name: Initialize - Pass (With Output)
id: init-pass-output
uses: Invicton-Labs/terraform-module-testing/initialize@dev
with:
tf_path: tests/pass-output
- name: Run Tests - Pass (With Output)
id: tests-pass-output
uses: Invicton-Labs/terraform-module-testing/apply-destroy@dev
with:
tf_path: tests/pass-output
- name: Initialize - Pass - Condition Delayed
id: init-pass-condition-delayed
uses: Invicton-Labs/terraform-module-testing/initialize@dev
with:
tf_path: tests/pass-condition-delayed
- name: Run Tests - Pass - Condition Delayed
id: tests-pass-condition-delayed
uses: Invicton-Labs/terraform-module-testing/apply-destroy@dev
with:
tf_path: tests/pass-condition-delayed
- name: Initialize - Pass - Message Delayed
id: init-pass-message-delayed
uses: Invicton-Labs/terraform-module-testing/initialize@dev
with:
tf_path: tests/pass-message-delayed
- name: Run Tests - Pass - Message Delayed
id: tests-pass-message-delayed
uses: Invicton-Labs/terraform-module-testing/apply-destroy@dev
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/initialize@dev
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/apply-destroy@dev
with:
tf_path: tests/pass-condition-message-delayed
- name: Initialize - Fail
id: init-fail
uses: Invicton-Labs/terraform-module-testing/initialize@dev
with:
tf_path: tests/fail
- name: Run Tests - Fail
id: tests-fail
uses: Invicton-Labs/terraform-module-testing/apply-failure@dev
with:
tf_path: tests/fail
stderr_contains: sample error
- name: Initialize - Fail (Output)
id: init-fail-output
uses: Invicton-Labs/terraform-module-testing/initialize@dev
with:
tf_path: tests/fail-output
- name: Run Tests - Fail (Output)
id: tests-fail-output
uses: Invicton-Labs/terraform-module-testing/apply-failure@dev
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/initialize@dev
with:
tf_path: tests/fail-condition-delayed
- name: Run Tests - Fail - Condition Delayed
id: tests-fail-condition-delayed
uses: Invicton-Labs/terraform-module-testing/apply-failure@dev
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/initialize@dev
with:
tf_path: tests/fail-message-delayed
- name: Run Tests - Fail - Message Delayed
id: tests-fail-message-delayed
uses: Invicton-Labs/terraform-module-testing/apply-failure@dev
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/initialize@dev
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/apply-failure@dev
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 "🎉"