diff options
| author | Stefan Boberg <[email protected]> | 2026-02-28 15:36:13 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-02-28 15:36:13 +0100 |
| commit | c7e0efb9c12f4607d4bc6a844a3e5bd3272bd839 (patch) | |
| tree | 47c7edc37dcd54f06be04b40f96e6edc24d7f4ab /.github/workflows/validate.yml | |
| parent | add multirange requests to blob store (#795) (diff) | |
| download | zen-c7e0efb9c12f4607d4bc6a844a3e5bd3272bd839.tar.xz zen-c7e0efb9c12f4607d4bc6a844a3e5bd3272bd839.zip | |
test running / reporting improvements (#797)
**CI/CD improvements (validate.yml):**
- Add test reporter (`ue-foundation/test-reporter@v2`) for all three platforms, rendering JUnit test results directly in PR check runs
- Add "Trust workspace" step on Windows to fix git safe.directory ownership issue with self-hosted runners
- Clean stale report files before each test run to prevent false failures from leftover XML
- Broaden `paths-ignore` to skip builds for non-code changes (`*.md`, `LICENSE`, `.gitignore`, `docs/**`)
**Test improvements:**
- Convert `CHECK` to `REQUIRE` in several test suites (projectstore, integration, http) for fail-fast behavior
- Mark some tests with `doctest::skip()` for selective execution
- Skip httpclient transport tests pending investigation
- Add `--noskip` option to `xmake test` task
- Add `--repeat=<N>` option to `xmake test` task, to run tests repeatedly N times or until there is a failure
**xmake test output improvements:**
- Add totals row to test summary table
- Right-justify numeric columns in summary table
Diffstat (limited to '.github/workflows/validate.yml')
| -rw-r--r-- | .github/workflows/validate.yml | 85 |
1 files changed, 62 insertions, 23 deletions
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 17e031ba0..bf7b1c853 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -4,6 +4,10 @@ env: WINDOWS_SDK_VERSION: 22621 XMAKE_GLOBALDIR: ${{ github.workspace }}/../.xmake_shared +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref_name != 'main' }} + on: pull_request: types: @@ -13,8 +17,11 @@ on: branches: - 'main' paths-ignore: + - '*.md' + - 'LICENSE' + - '.gitignore' + - 'docs/**' - 'VERSION.txt' - - 'CHANGELOG.md' - '.github/workflows/create_release.yml' - '.github/workflows/mirror_releases.yml' - '.github/workflows/mirror.yml' @@ -22,31 +29,22 @@ on: branches: - 'main' paths-ignore: + - '*.md' + - 'LICENSE' + - '.gitignore' + - 'docs/**' - 'VERSION.txt' - - 'CHANGELOG.md' - '.github/workflows/create_release.yml' - '.github/workflows/mirror_releases.yml' - '.github/workflows/mirror.yml' jobs: - cancel-old-build: - name: Cancel previous builds - runs-on: [linux, x64, zen] - - steps: - - name: Cancel Previous Runs - if: ${{ github.ref_name != 'main'}} - uses: ue-foundation/[email protected] - with: - access_token: ${{ github.token }} - clang-format: - needs: cancel-old-build name: Check clang-format runs-on: [linux, x64, zen] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: clang-format uses: ue-foundation/clang-format-action@epic-batching-v1 @@ -55,7 +53,6 @@ jobs: check-path: 'src' windows-build: - needs: cancel-old-build name: Build & Test Windows runs-on: [windows, x64, zen] timeout-minutes: 25 @@ -69,7 +66,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + + - name: Trust workspace + run: git config --global --add safe.directory "${{ github.workspace }}" - name: Setup xmake uses: ue-foundation/[email protected] @@ -80,6 +80,10 @@ jobs: run: | xmake config -vD -y -m ${{ matrix.config }} --arch=${{ matrix.arch }} --zensentry=yes + - name: Clean reports + if: ${{ matrix.config == 'debug' }} + run: if (Test-Path build/reports) { Remove-Item -Recurse -Force build/reports } + - name: Build & Test if: ${{ matrix.config == 'debug' }} run: | @@ -92,9 +96,18 @@ jobs: name: reports-win64 path: build/reports/*.xml + - name: Test Report + if: ${{ (failure() || success()) && (matrix.config == 'debug') }} + uses: ue-foundation/test-reporter@v2 + with: + name: Test Results (win64) + path: build/reports/*.xml + reporter: java-junit + list-tests: 'failed' + - name: Bundle if: ${{ matrix.config == 'release' }} - run: | + run: | xmake bundle -v -y --codesignidentity="Epic Games" - name: Upload zenserver-win64 @@ -105,7 +118,6 @@ jobs: path: build/zenserver-win64.zip linux-build: - needs: cancel-old-build name: Build & Test Linux runs-on: [linux, x64, zen] timeout-minutes: 25 @@ -119,7 +131,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install UE Toolchain run: | @@ -135,6 +147,11 @@ jobs: run: | ./scripts/ue_build_linux/ue_build.sh ./.tmp-ue-toolchain xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }} --zensentry=yes + - name: Clean reports + if: ${{ matrix.config == 'debug' }} + shell: bash + run: rm -rf build/reports + - name: Build & Test if: ${{ matrix.config == 'debug' }} run: | @@ -147,6 +164,15 @@ jobs: name: reports-linux path: build/reports/*.xml + - name: Test Report + if: ${{ (failure() || success()) && (matrix.config == 'debug') }} + uses: ue-foundation/test-reporter@v2 + with: + name: Test Results (linux) + path: build/reports/*.xml + reporter: java-junit + list-tests: 'failed' + - name: Bundle if: ${{ matrix.config == 'release' }} run: | @@ -160,7 +186,6 @@ jobs: path: build/zenserver-linux.zip macos-build: - needs: cancel-old-build name: Build & Test MacOS runs-on: [macos, x64, zen] timeout-minutes: 25 @@ -174,7 +199,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup xmake uses: ue-foundation/[email protected] @@ -185,6 +210,11 @@ jobs: run: | xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }} --zensentry=yes + - name: Clean reports + if: ${{ matrix.config == 'debug' }} + shell: bash + run: rm -rf build/reports + - name: Build & Test if: ${{ matrix.config == 'debug' }} run: | @@ -197,9 +227,18 @@ jobs: name: reports-macos path: build/reports/*.xml + - name: Test Report + if: ${{ (failure() || success()) && (matrix.config == 'debug') }} + uses: ue-foundation/test-reporter@v2 + with: + name: Test Results (macos) + path: build/reports/*.xml + reporter: java-junit + list-tests: 'failed' + - name: Bundle if: ${{ matrix.config == 'release' }} - run: | + run: | xmake bundle -v -y --codesignidentity="Developer ID Application" - name: Upload zenserver-macos |