|
61 | 61 | source $HOME/BYOND/byond/bin/byondsetup
|
62 | 62 | tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -Werror
|
63 | 63 | - name: Run Tests
|
| 64 | + id: run_tests |
64 | 65 | run: |
|
65 | 66 | source $HOME/BYOND/byond/bin/byondsetup
|
66 | 67 | bash tools/ci/run_server.sh ${{ inputs.map }}
|
|
71 | 72 | name: test_artifacts_${{ inputs.map }}_${{ inputs.major }}_${{ inputs.minor }}
|
72 | 73 | path: data/screenshots_new/
|
73 | 74 | retention-days: 1
|
| 75 | + - name: On test fail, write a step summary |
| 76 | + if: always() && steps.run_tests.outcome == 'failure' |
| 77 | + run: | |
| 78 | + # Get a JSON array of failed unit tests |
| 79 | + FAILED_UNIT_TESTS=$(jq 'to_entries | map(.value | select(.status == 1))' data/unit_tests.json) |
| 80 | +
|
| 81 | + FAIL_COUNT=$(echo $FAILED_UNIT_TESTS | jq 'length') |
| 82 | +
|
| 83 | + echo "# Test failures" >> $GITHUB_STEP_SUMMARY |
| 84 | + echo "$FAIL_COUNT tests failed." >> $GITHUB_STEP_SUMMARY |
| 85 | + echo "" >> $GITHUB_STEP_SUMMARY |
| 86 | +
|
| 87 | + for i in $( seq $FAIL_COUNT ); do |
| 88 | + CURRENT_FAIL=$(echo $FAILED_UNIT_TESTS | jq --arg i $i '.[($i | tonumber) - 1]') |
| 89 | +
|
| 90 | + TEST=$(echo $CURRENT_FAIL | jq --raw-output '.name') |
| 91 | +
|
| 92 | + echo "### $TEST" >> $GITHUB_STEP_SUMMARY |
| 93 | + echo '```' >> $GITHUB_STEP_SUMMARY |
| 94 | + echo $CURRENT_FAIL | jq --raw-output '.message' >> $GITHUB_STEP_SUMMARY |
| 95 | + echo '```' >> $GITHUB_STEP_SUMMARY |
| 96 | + echo "" >> $GITHUB_STEP_SUMMARY |
| 97 | + done |
74 | 98 | - name: Check client Compatibility
|
75 | 99 | if: always() && steps.compile_tests.outcome == 'success'
|
76 | 100 | uses: tgstation/byond-client-compatibility-check@v3
|
|
0 commit comments