From d3fff4eb571b92e372bff859537bdbeafdbcd7f4 Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Sat, 8 Aug 2026 01:31:40 +1000 Subject: [PATCH] [client] ci: run tests with each build Run CTest directly in every client matrix job so each build is tested without waiting for the full matrix to complete. Install the Mesa runtime in the build job, preserve failure artifacts, and remove the archive transfer and duplicate test job. --- .github/workflows/build.yml | 73 ++++++------------------------------- 1 file changed, 12 insertions(+), 61 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2955fc42..bcf77c2a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: - name: Install client dependencies run: | sudo apt-get install \ - weston libgtest-dev \ + weston libgtest-dev libgl1-mesa-dri \ libdw-dev libunwind-dev \ libspice-protocol-dev nettle-dev \ libgl-dev libgles-dev \ @@ -51,20 +51,22 @@ jobs: run: | cd client/build make -j$(nproc) + - name: Run client tests + id: tests + run: ctest --test-dir client/build --output-on-failure + - name: Upload client test failures + if: failure() && steps.tests.outcome == 'failure' + uses: actions/upload-artifact@v6 + with: + name: client-test-failures-${{ matrix.compiler.cc }}-${{ matrix.wayland_shell }}-${{ matrix.build_type }} + path: | + client/build/Testing/ + /tmp/lg-render-case.* - name: Checking help spelling run: ./client/build/looking-glass-client --help | ./doc/lgspell.py - name: Check GL function calls if: matrix.compiler.cc == 'clang' run: WAYLAND_SHELL='${{ matrix.wayland_shell }}' ./gl-check - - name: Package client build - run: tar -cf client-build.tar -C client build - - name: Upload client build - uses: actions/upload-artifact@v6 - with: - name: client-build-${{ matrix.compiler.cc }}-${{ matrix.wayland_shell }}-${{ matrix.build_type }} - path: client-build.tar - retention-days: 1 - module: runs-on: ubuntu-latest steps: @@ -246,54 +248,3 @@ jobs: run: | cd doc make dirhtml SPHINXOPTS='-b spelling -W' -j$(nproc) - - client-tests: - needs: client - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - compiler: - - {cc: gcc, cxx: g++} - - {cc: clang, cxx: clang++} - wayland_shell: [xdg-shell, libdecor] - build_type: [Release, Debug] - steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install \ - weston libgtest-dev libgl1-mesa-dri \ - libdecor-0-dev libdbus-1-dev \ - libdw-dev libunwind-dev \ - libspice-protocol-dev nettle-dev \ - libgl-dev libgles-dev \ - libx11-dev libxss-dev libxi-dev libxinerama-dev \ - libxcursor-dev libxpresent-dev \ - libwayland-dev libxkbcommon-dev libfontconfig-dev \ - libsamplerate0-dev libpipewire-0.3-dev libpulse-dev - - - name: Download client build - uses: actions/download-artifact@v7 - with: - name: client-build-${{ matrix.compiler.cc }}-${{ matrix.wayland_shell }}-${{ matrix.build_type }} - path: client-build - - - name: Run client tests - id: tests - run: | - tar -xf client-build/client-build.tar -C client - ctest --test-dir client/build --output-on-failure - - - name: Upload client test failures - if: failure() && steps.tests.outcome == 'failure' - uses: actions/upload-artifact@v6 - with: - name: client-test-failures-${{ matrix.compiler.cc }}-${{ matrix.wayland_shell }}-${{ matrix.build_type }} - path: | - client/build/Testing/ - /tmp/lg-render-case.*