@@ -2,203 +2,19 @@ name: "nightly"
2
2
3
3
on :
4
4
schedule :
5
- - cron : ' 0 0 * * *'
6
-
7
-
8
- env :
9
- HONEYCOMB_WRITEKEY : 7f3c63a70eecc61d635917de46bea4e6
10
- HONEYCOMB_DATASET : litmus tests
5
+ - cron : " 0 0 * * *"
6
+ workflow_dispatch :
11
7
12
8
jobs :
13
- setup_matrix :
14
- if : ${{ github.repository_owner == 'puppetlabs' }}
15
- name : " Setup Test Matrix"
16
- runs-on : ubuntu-20.04
17
- outputs :
18
- matrix : ${{ steps.get-matrix.outputs.matrix }}
19
-
20
- steps :
21
-
22
- - name : " Honeycomb: Start recording"
23
- uses : puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
24
- with :
25
- apikey : ${{ env.HONEYCOMB_WRITEKEY }}
26
- dataset : ${{ env.HONEYCOMB_DATASET }}
27
- job-status : ${{ job.status }}
9
+ Spec :
10
+ uses : " puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@main"
11
+ with :
12
+ runs_on : " ubuntu-20.04"
13
+ secrets : " inherit"
28
14
29
- - name : " Honeycomb: Start first step"
30
- run : |
31
- echo STEP_ID=setup-environment >> $GITHUB_ENV
32
- echo STEP_START=$(date +%s) >> $GITHUB_ENV
33
- - name : Checkout Source
34
- uses : actions/checkout@v2
35
- if : ${{ github.repository_owner == 'puppetlabs' }}
36
-
37
- - name : Activate Ruby 2.7
38
- uses : ruby/setup-ruby@v1
39
- if : ${{ github.repository_owner == 'puppetlabs' }}
40
- with :
41
- ruby-version : " 2.7"
42
- bundler-cache : true
43
-
44
- - name : Print bundle environment
45
- if : ${{ github.repository_owner == 'puppetlabs' }}
46
- run : |
47
- echo ::group::bundler environment
48
- buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
49
- echo ::endgroup::
50
-
51
- - name : " Honeycomb: Record Setup Environment time"
52
- if : ${{ github.repository_owner == 'puppetlabs' }}
53
- run : |
54
- buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
55
- echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
56
- echo STEP_START=$(date +%s) >> $GITHUB_ENV
57
- - name : Setup Acceptance Test Matrix
58
- id : get-matrix
59
- if : ${{ github.repository_owner == 'puppetlabs' }}
60
- run : |
61
- if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
62
- buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2 --exclude-platforms '["Scientific-6", "Scientific-7", "Debian-9", "Debian-10", "Debian-11", "SLES-12", "SLES-15", "Ubuntu-14.04", "Ubuntu-16.04", "Ubuntu-18.04", "Ubuntu-20.04", "Ubuntu-22.04"]'
63
- else
64
- echo "::set-output name=matrix::{}"
65
- fi
66
-
67
- - name : " Honeycomb: Record Setup Test Matrix time"
68
- if : ${{ always() }}
69
- run : |
70
- buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
71
15
Acceptance :
72
- name : " ${{matrix.platforms.label}}, ${{matrix.collection}}"
73
- needs :
74
- - setup_matrix
75
-
76
- runs-on : ubuntu-20.04
77
- strategy :
78
- fail-fast : false
79
- matrix : ${{fromJson(needs.setup_matrix.outputs.matrix)}}
80
-
81
- env :
82
- BUILDEVENT_FILE : ' ../buildevents.txt'
83
-
84
- steps :
85
- - run : |
86
- echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE
87
- echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
88
- echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE
89
-
90
-
91
- - name : " Honeycomb: Start recording"
92
- uses : puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
93
- with :
94
- apikey : ${{ env.HONEYCOMB_WRITEKEY }}
95
- dataset : ${{ env.HONEYCOMB_DATASET }}
96
- job-status : ${{ job.status }}
97
- matrix-key : ${{ matrix.platforms.label }}-${{ matrix.collection }}
98
-
99
- - name : " Honeycomb: start first step"
100
- run : |
101
- echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
102
- echo STEP_START=$(date +%s) >> $GITHUB_ENV
103
-
104
- - name : Checkout Source
105
- uses : actions/checkout@v2
106
-
107
- - name : Activate Ruby 2.7
108
- uses : ruby/setup-ruby@v1
109
- with :
110
- ruby-version : " 2.7"
111
- bundler-cache : true
112
-
113
- - name : Print bundle environment
114
- run : |
115
- echo ::group::bundler environment
116
- buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
117
- echo ::endgroup::
118
-
119
- - name : " Honeycomb: Record Setup Environment time"
120
- if : ${{ always() }}
121
- run : |
122
- buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
123
- echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
124
- echo STEP_START=$(date +%s) >> $GITHUB_ENV
125
-
126
- - name : Provision test environment
127
- run : |
128
- buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]'
129
- echo ::group::=== REQUEST ===
130
- cat request.json || true
131
- echo
132
- echo ::endgroup::
133
- echo ::group::=== INVENTORY ===
134
- if [ -f 'spec/fixtures/litmus_inventory.yaml' ];
135
- then
136
- FILE='spec/fixtures/litmus_inventory.yaml'
137
- elif [ -f 'inventory.yaml' ];
138
- then
139
- FILE='inventory.yaml'
140
- fi
141
- sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true
142
- echo ::endgroup::
143
-
144
- - name : Install agent
145
- run : |
146
- buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
147
-
148
- - name : Install module
149
- run : |
150
- buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
151
-
152
- - name : " Honeycomb: Record deployment times"
153
- if : ${{ always() }}
154
- run : |
155
- echo ::group::honeycomb step
156
- buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system'
157
- echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
158
- echo STEP_START=$(date +%s) >> $GITHUB_ENV
159
- echo ::endgroup::
160
-
161
- - name : Run acceptance tests
162
- run : |
163
- buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:acceptance:parallel' -- bundle exec rake 'litmus:acceptance:parallel'
164
-
165
- - name : " Honeycomb: Record acceptance testing times"
166
- if : ${{ always() }}
167
- run : |
168
- buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
169
- echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
170
- echo STEP_START=$(date +%s) >> $GITHUB_ENV
171
-
172
- - name : Remove test environment
173
- if : ${{ always() }}
174
- continue-on-error : true
175
- run : |
176
- if [[ -f inventory.yaml || -f spec/fixtures/litmus_inventory.yaml ]]; then
177
- buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down'
178
- echo ::group::=== REQUEST ===
179
- cat request.json || true
180
- echo
181
- echo ::endgroup::
182
- fi
183
-
184
- - name : " Honeycomb: Record removal times"
185
- if : ${{ always() }}
186
- run : |
187
- buildevents step $TRACE_ID $STEP_ID $STEP_START 'Remove test environment'
188
-
189
- slack-workflow-status :
190
- if : ${{ github.repository_owner == 'puppetlabs' }}
191
- name : Post Workflow Status To Slack
192
- needs :
193
- - Acceptance
194
- runs-on : ubuntu-20.04
195
- steps :
196
- - name : Slack Workflow Notification
197
- uses : puppetlabs/Gamesight-slack-workflow-status@pdk-templates-v1
198
- with :
199
- # Required Input
200
- repo_token : ${{ secrets.GITHUB_TOKEN }}
201
- slack_webhook_url : ${{ secrets.SLACK_WEBHOOK }}
202
- # Optional Input
203
- channel : ' #team-cat-bots'
204
- name : ' GABot'
16
+ needs : Spec
17
+ uses : " puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
18
+ with :
19
+ runs_on : " ubuntu-20.04"
20
+ secrets : " inherit"
0 commit comments