@@ -187,7 +187,11 @@ jobs:
187
187
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
188
188
189
189
test-debug :
190
- name : ' Integration test: debug option'
190
+ strategy :
191
+ matrix :
192
+ environment : ['', 'debug-integration-test']
193
+ environment : ${{ matrix.environment }}
194
+ name : " Integration test: debug option (runner.debug mode ${{ matrix.environment && 'enabled' || 'disabled' }})"
191
195
runs-on : ubuntu-latest
192
196
steps :
193
197
- uses : actions/checkout@v3
@@ -204,6 +208,7 @@ jobs:
204
208
script : |
205
209
const log = github.log
206
210
return {
211
+ runnerDebugMode: core.isDebug(),
207
212
debug: log.debug === console.debug,
208
213
info: log.info === console.info
209
214
}
@@ -215,6 +220,7 @@ jobs:
215
220
script : |
216
221
const log = github.log
217
222
return {
223
+ runnerDebugMode: core.isDebug(),
218
224
debug: log.debug === console.debug,
219
225
info: log.info === console.info
220
226
}
@@ -226,26 +232,39 @@ jobs:
226
232
script : |
227
233
const log = github.log
228
234
return {
235
+ runnerDebugMode: core.isDebug(),
229
236
debug: log.debug === console.debug,
230
237
info: log.info === console.info
231
238
}
232
- - run : |
233
- echo "- Validating debug default"
234
- expected='{debug:false,info:false}'
235
- if [[ "${{steps.debug-default.outputs.result}}" != "$expected" ]]; then
236
- echo $'::error::\u274C' "Expected '$expected', got ${{steps.debug-default.outputs.result}}"
237
- exit 1
238
- fi
239
- echo "- Validating debug set to true"
240
- expected='{debug:true,info:true}'
241
- if [[ "${{steps.debug-true.outputs.result}}" != "$expected" ]]; then
242
- echo $'::error::\u274C' "Expected '$expected', got ${{steps.debug-true.outputs.result}}"
243
- exit 1
244
- fi
245
- echo "- Validating debug set to false"
246
- expected='{debug:false,info:false}'
247
- if [[ "${{steps.debug-false.outputs.result}}" != "$expected" ]]; then
248
- echo $'::error::\u274C' "Expected '$expected', got ${{steps.debug-false.outputs.result}}"
249
- exit 1
250
- fi
239
+ - id : evaluate-tests
240
+ name : Evaluate test outputs
241
+ env :
242
+ RDMODE : ${{ runner.debug == '1' }}
243
+ run : |
244
+ # tests table, pipe separated: label | output | expected
245
+ # leading and trailing spaces on any field are trimmed
246
+ tests=$(cat << 'TESTS'
247
+ Validating debug default |\
248
+ ${{ steps.debug-default.outputs.result }} |\
249
+ {"runnerDebugMode":${{ env.RDMODE }},"debug":${{ env.RDMODE }},"info":${{ env.RDMODE }}}
250
+ Validating debug set to true |\
251
+ ${{ steps.debug-true.outputs.result }} |\
252
+ {"runnerDebugMode":${{ env.RDMODE }},"debug":true,"info":true}
253
+ Validating debug set to false |\
254
+ ${{ steps.debug-false.outputs.result }} |\
255
+ {"runnerDebugMode":${{ env.RDMODE }},"debug":false,"info":false}
256
+ TESTS
257
+ )
258
+
259
+ strim() { shopt -s extglob; lt="${1##+( )}"; echo "${lt%%+( )}"; }
260
+ while IFS='|' read label output expected; do
261
+ label="$(strim "$label")"; output="$(strim "$output")"; expected="$(strim "$expected")"
262
+ echo -n "- $label:"
263
+ if [[ "$output" != "$expected" ]]; then
264
+ echo $'\n::error::\u274C' "Expected '$expected', got '$output'"
265
+ exit 1
266
+ fi
267
+ echo $' \u2705'
268
+ done <<< "$tests"
269
+
251
270
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
0 commit comments