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: unit-tests 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: Get test results id: results run: | pass="✅ Pass" fail="❌ Fail" unit_tests_outcome="${{ steps.unit-tests.outcome }}" unit_tests=$( [ "$unit_tests_outcome" = "success" ] && echo $pass || echo $fail ) echo "unit-tests=$unit_tests" >> $GITHUB_OUTPUT shell: bash - name: Summary row id: row run: | file="row-${{ inputs.job }}.md" row="" row+="| ${{ inputs.job }} " row+="| ${{ steps.results.outputs.unit-tests }} " echo "$row" > $file echo "file=$file" > $GITHUB_OUTPUT shell: bash - name: Save summary row uses: actions/upload-artifact@v7 with: name: test-result-${{ inputs.job }} path: ${{ steps.row.outputs.file }} - name: Check test outcome if: (steps.unit-tests.outcome != 'success') run: | echo "Tests failed" exit 1 shell: bash