85 lines
2.3 KiB
YAML
85 lines
2.3 KiB
YAML
name: "Run tests"
|
|
description: "Runs both unit tests and integration tests and appends to a PR comment"
|
|
|
|
inputs:
|
|
job:
|
|
description: "The job name to append to the PR comment"
|
|
required: true
|
|
default: "unknown"
|
|
|
|
bin-dir:
|
|
description: "The directory containing the test binaries"
|
|
default: "build/bin"
|
|
|
|
runs:
|
|
using: "composite"
|
|
|
|
steps:
|
|
- name: Unit Tests
|
|
id: unittests
|
|
env:
|
|
QT_QPA_PLATFORM: offscreen
|
|
run: |
|
|
ctest --test-dir "build/src/unittests" --output-on-failure
|
|
result=$?
|
|
|
|
if [ $result -ne 0 ]; then
|
|
echo "Unit tests failed with code: $result" >> $GITHUB_STEP_SUMMARY
|
|
fi
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
- name: Legacy Tests
|
|
id: legacytests
|
|
env:
|
|
QT_QPA_PLATFORM: offscreen
|
|
run: |
|
|
./${{ inputs.bin-dir }}/legacytests
|
|
result=$?
|
|
|
|
if [ $result -ne 0 ]; then
|
|
echo "Legacy tests failed with code: $result" >> $GITHUB_STEP_SUMMARY
|
|
fi
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
- name: Get test results
|
|
id: results
|
|
run: |
|
|
pass="✅ Pass"
|
|
fail="❌ Fail"
|
|
unittests_outcome="${{ steps.unittests.outcome }}"
|
|
legacytests_outcome="${{ steps.legacytests.outcome }}"
|
|
unittests=$( [ "$unittests_outcome" = "success" ] && echo $pass || echo $fail )
|
|
legacytests=$( [ "$legacytests_outcome" = "success" ] && echo $pass || echo $fail )
|
|
echo "unittests=$unittests" >> $GITHUB_OUTPUT
|
|
echo "legacytests=$legacytests" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Summary row
|
|
id: row
|
|
run: |
|
|
file="row-${{ inputs.job }}.md"
|
|
|
|
row=""
|
|
row+="| ${{ inputs.job }} "
|
|
row+="| ${{ steps.results.outputs.unittests }} "
|
|
row+="| ${{ steps.results.outputs.legacytests }} "
|
|
echo "$row" > $file
|
|
|
|
echo "file=$file" > $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Save summary row
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-result-${{ inputs.job }}
|
|
path: ${{ steps.row.outputs.file }}
|
|
|
|
- name: Check test outcome
|
|
if: (steps.unittests.outcome != 'success' || steps.legacytests.outcome != 'success')
|
|
run: |
|
|
echo "Tests failed"
|
|
exit 1
|
|
shell: bash
|