diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index f4c6d14c9e8..0aa80b380a8 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -4,6 +4,16 @@ on: [push, pull_request] jobs: + event_file: # Used for test reporting + name: "Publish event file" + runs-on: ubuntu-latest + steps: + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: EventFile + path: ${{ github.event_path }} + build: runs-on: ${{ matrix.os }} diff --git a/.github/workflows/publish-test-results.yml b/.github/workflows/publish-test-results.yml new file mode 100644 index 00000000000..4f3b4e91681 --- /dev/null +++ b/.github/workflows/publish-test-results.yml @@ -0,0 +1,47 @@ +# This is used to publish test results to PRs so that we can support external forks + +name: Publish FAKE Test Results + +on: + workflow_run: + workflows: ["FAKE Build and Test"] + types: + - completed +permissions: {} + +jobs: + test-results: + name: Test Results + runs-on: ubuntu-latest + if: github.event.workflow_run.conclusion != 'skipped' + + permissions: + checks: write + pull-requests: write + actions: read + + steps: + # Download the Github event file + - name: Download Event file + uses: dawidd6/action-download-artifact@v4 + with: + run_id: ${{ github.event.workflow_run.id }} + path: artifacts + name: EventFile + + # Download all the test results files + - name: Download test results + uses: dawidd6/action-download-artifact@v4 + with: + run_id: ${{ github.event.workflow_run.id }} + path: test-results + pattern: test-results-* + + # Publish the test report + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + with: + commit: ${{ github.event.workflow_run.head_sha }} + event_file: artifacts/event.json + event_name: ${{ github.event.workflow_run.event }} + files: "test-results/**/*.xml"