Mercurial > repos > other > Puppet
comparison modules/apt/.github/workflows/nightly.yml @ 386:3fce34f642f1
Add a PHP module to handle platform differences
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 03 Jan 2022 17:09:39 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
385:d9009f54eb23 | 386:3fce34f642f1 |
---|---|
1 name: "nightly" | |
2 | |
3 on: | |
4 schedule: | |
5 - cron: '0 0 * * *' | |
6 | |
7 env: | |
8 HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6 | |
9 HONEYCOMB_DATASET: litmus tests | |
10 | |
11 jobs: | |
12 setup_matrix: | |
13 name: "Setup Test Matrix" | |
14 runs-on: ubuntu-20.04 | |
15 outputs: | |
16 matrix: ${{ steps.get-matrix.outputs.matrix }} | |
17 | |
18 steps: | |
19 - name: "Honeycomb: Start recording" | |
20 uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1 | |
21 with: | |
22 apikey: ${{ env.HONEYCOMB_WRITEKEY }} | |
23 dataset: ${{ env.HONEYCOMB_DATASET }} | |
24 job-status: ${{ job.status }} | |
25 | |
26 - name: "Honeycomb: Start first step" | |
27 run: | | |
28 echo STEP_ID=setup-environment >> $GITHUB_ENV | |
29 echo STEP_START=$(date +%s) >> $GITHUB_ENV | |
30 | |
31 - name: Checkout Source | |
32 uses: actions/checkout@v2 | |
33 if: ${{ github.repository_owner == 'puppetlabs' }} | |
34 | |
35 - name: Activate Ruby 2.7 | |
36 uses: ruby/setup-ruby@v1 | |
37 if: ${{ github.repository_owner == 'puppetlabs' }} | |
38 with: | |
39 ruby-version: "2.7" | |
40 bundler-cache: true | |
41 | |
42 - name: Print bundle environment | |
43 if: ${{ github.repository_owner == 'puppetlabs' }} | |
44 run: | | |
45 echo ::group::bundler environment | |
46 buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env | |
47 echo ::endgroup:: | |
48 | |
49 - name: "Honeycomb: Record Setup Environment time" | |
50 if: ${{ github.repository_owner == 'puppetlabs' }} | |
51 run: | | |
52 buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment' | |
53 echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV | |
54 echo STEP_START=$(date +%s) >> $GITHUB_ENV | |
55 | |
56 - name: Setup Acceptance Test Matrix | |
57 id: get-matrix | |
58 if: ${{ github.repository_owner == 'puppetlabs' }} | |
59 run: | | |
60 if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then | |
61 buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2 | |
62 else | |
63 echo "::set-output name=matrix::{}" | |
64 fi | |
65 | |
66 - name: "Honeycomb: Record Setup Test Matrix time" | |
67 if: ${{ always() }} | |
68 run: | | |
69 buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix' | |
70 | |
71 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: always() | |
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-ia-bots' | |
204 name: 'GABot' |