From 23abaa711a13439278c40a26cf3cf0d8bb4357dd Mon Sep 17 00:00:00 2001 From: Douglas Whittingham Date: Wed, 5 Aug 2026 19:32:43 -1000 Subject: [PATCH] Run CI on pull requests, on the vendored branch, and on Windows Three gaps, each of which let a break through. Nothing ran on a pull request, so a change reached a branch other people vendor before anything compiled it. A missing include that stopped `core` building got in exactly that way. Only `main` was watched on push, but `moderngekko-vendor` is the branch ModernGekko actually vendors, so the branch being consumed was the one not being checked. Windows was not built at all. That is how the precompiled-header flags being applied to C sources -- GXRuntime handed a C++ PCH, fatal error C1853 -- reached the vendored branch and stopped the downstream launcher compiling. The unit tests also existed without anything running them; `tests` is EXCLUDE_FROM_ALL, so it has to be asked for by name. Linux and Windows now build it and run ctest. Concurrency cancels superseded runs, since these builds are not cheap. --- .github/workflows/build.yml | 41 ++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 366e6011e6..55cc87ee41 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,10 +1,20 @@ name: Build on: + # Pull requests were not covered, so nothing checked a change before it + # reached a branch other people vendor. A missing include that stopped `core` + # compiling got in that way. + pull_request: push: - branches: [main] + # moderngekko-vendor is the branch ModernGekko actually vendors, so it needs + # watching as much as main does. + branches: [main, moderngekko-vendor] workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: nogui-macos: runs-on: macos-15 @@ -36,3 +46,32 @@ jobs: run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DENABLE_QT=OFF -DENABLE_NOGUI=ON -DUSE_MGBA=OFF - name: Build run: ninja -C build dolphin-emu-nogui + # The unit tests exist but nothing ran them. `tests` is EXCLUDE_FROM_ALL, + # so it has to be asked for by name. + - name: Build unit tests + run: ninja -C build tests + - name: Test + working-directory: build + run: ctest --output-on-failure --timeout 300 + + # Windows was not built at all, which is how PCH flags being applied to C + # sources -- GXRuntime handed a C++ precompiled header, fatal error C1853 -- + # reached the vendored branch. + nogui-windows: + runs-on: windows-2022 + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install dependencies + run: choco install ninja --no-progress -y + - uses: ilammy/msvc-dev-cmd@v1 + - name: Configure + run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DENABLE_QT=OFF -DENABLE_NOGUI=ON -DUSE_MGBA=OFF + - name: Build + run: ninja -C build dolphin-emu-nogui + - name: Build unit tests + run: ninja -C build tests + - name: Test + working-directory: build + run: ctest --output-on-failure --timeout 300