@@ -2,203 +2,20 @@ name: "nightly"
22
33on :
44 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 :
117
128jobs :
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"
2814
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
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'
7115 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'
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"
18821
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'
0 commit comments