diff --git a/.github/jobs/unit-tests.sh b/.github/jobs/unit-tests.sh index b55fb86ce3..2f5ff66df7 100755 --- a/.github/jobs/unit-tests.sh +++ b/.github/jobs/unit-tests.sh @@ -36,7 +36,7 @@ php $phpcov webapp/bin/phpunit -c webapp/phpunit.xml.dist webapp/tests/$unittest UNITSUCCESS=$? # Store the unit tests also in the root for the GHA -cp $ARTIFACTS/unit-tests.xml $DIR/ +cp $ARTIFACTS/unit-tests.xml $DIR/unit-tests-${version}-${unittest}.xml # Make sure the log exists before copy touch ${DIR}/webapp/var/log/test.log diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 52760ba653..d7fbb3bbc4 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -26,6 +26,8 @@ jobs: run: diff newcodecov .github/jobs/uploadcodecov.sh unit-tests: + permissions: + checks: write runs-on: ubuntu-24.04 timeout-minutes: 20 container: @@ -87,3 +89,13 @@ jobs: /opt/domjudge/domserver/webapp/var/log/*.log /tmp/docker-logs /tmp/artifacts + + event_file: + name: "Post results assuming forks" + runs-on: ubuntu-latest + steps: + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: Event File + path: ${{ github.event_path }} diff --git a/.github/workflows/upload-unit-tests.yml b/.github/workflows/upload-unit-tests.yml new file mode 100644 index 0000000000..6ef7486344 --- /dev/null +++ b/.github/workflows/upload-unit-tests.yml @@ -0,0 +1,34 @@ +name: Publish unit test results + +on: + workflow_run: + workflows: ["Unit tests"] + types: + - completed + permissions: {} + +jobs: + test-results: + name: Process test results + runs-on: ubuntu-latest + if: github.event.workflow_run.conclusion != 'skipped' + permissions: + # required by download step to access artifacts API + actions: read + # write the actual check-run + checks: write + # needed unless run with comment_mode: off + pull-requests: write + steps: + - name: Download and Extract Artifacts + uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d + with: + run_id: ${{ github.event.workflow_run.id }} + path: artifacts + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + with: + commit: ${{ github.event.workflow_run.head_sha }} + event_file: artifacts/Event File/event.json + event_name: ${{ github.event.workflow_run.event }} + files: "tmp/artifacts/**/*.xml"