* Add write permission for issues * Add write permission to PRs * Update ChangeLog * Fixed ChangeLog version * Correct ChangeLog * Remove GITHUB_TOKEN input * Revert "Remove GITHUB_TOKEN input" This reverts commit e868a8d3f4b753f758b4b2bd25aef78e4d4d62d7. * Use COMMENT_PAT for GITHUB_TOKEN * Use default permissions * Only use `sticky-pull-request-comment` for internal PRs * Update ChangeLog
62 lines
1.7 KiB
YAML
62 lines
1.7 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"
|
|
default: "unknown"
|
|
|
|
runs:
|
|
using: "composite"
|
|
|
|
steps:
|
|
- name: Unit tests
|
|
id: unittests
|
|
env:
|
|
QT_QPA_PLATFORM: offscreen
|
|
run: ./build/bin/unittests
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
- name: Integration tests
|
|
id: integtests
|
|
env:
|
|
QT_QPA_PLATFORM: offscreen
|
|
run: |
|
|
./build/bin/integtests
|
|
result=$?
|
|
|
|
if [ $result -ne 0 ]; then
|
|
echo "::warning ::Integration tests failed with code: $result"
|
|
fi
|
|
shell: bash
|
|
continue-on-error: true
|
|
|
|
- name: Get test results
|
|
id: results
|
|
run: |
|
|
pass="✅ Pass"
|
|
fail="❌ Fail"
|
|
unittests_outcome="${{ steps.unittests.outcome }}"
|
|
integtests_outcome="${{ steps.integtests.outcome }}"
|
|
unittests=$( [ "$unittests_outcome" = "success" ] && echo $pass || echo $fail )
|
|
integtests=$( [ "$integtests_outcome" = "success" ] && echo $pass || echo $fail )
|
|
echo "unittests=$unittests" >> $GITHUB_OUTPUT
|
|
echo "integtests=$integtests" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Append to PR comment
|
|
uses: marocchino/sticky-pull-request-comment@v2
|
|
if: github.event.pull_request.head.repo.full_name == github.repository
|
|
with:
|
|
header: tests
|
|
append: true
|
|
message: |
|
|
| ${{ inputs.job }} | ${{ steps.results.outputs.unittests }} | ${{ steps.results.outputs.integtests }} |
|
|
|
|
- name: Check test outcome
|
|
if: steps.unittests.outcome == 'failure'
|
|
run: |
|
|
echo "Unit tests failed"
|
|
exit 1
|
|
shell: bash
|