@@ -187,7 +187,11 @@ jobs:
187187 echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
188188
189189 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' }})"
191195 runs-on : ubuntu-latest
192196 steps :
193197 - uses : actions/checkout@v3
@@ -204,6 +208,7 @@ jobs:
204208 script : |
205209 const log = github.log
206210 return {
211+ runnerDebugMode: core.isDebug(),
207212 debug: log.debug === console.debug,
208213 info: log.info === console.info
209214 }
@@ -215,6 +220,7 @@ jobs:
215220 script : |
216221 const log = github.log
217222 return {
223+ runnerDebugMode: core.isDebug(),
218224 debug: log.debug === console.debug,
219225 info: log.info === console.info
220226 }
@@ -226,26 +232,39 @@ jobs:
226232 script : |
227233 const log = github.log
228234 return {
235+ runnerDebugMode: core.isDebug(),
229236 debug: log.debug === console.debug,
230237 info: log.info === console.info
231238 }
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+
251270 echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
0 commit comments