From 8d6e0829642f2bc5cd9eb605ba8d477323065dc5 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Wed, 4 Feb 2026 20:41:33 -0500 Subject: [PATCH 01/22] Initial attempt at CI updates --- .github/workflows/cmake.yml | 452 +++++++++++++++++++++++------------- 1 file changed, 287 insertions(+), 165 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index bc34bf082c..b4de6056e4 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -4,6 +4,12 @@ on: branches: [ master ] pull_request: branches: [ master ] + workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +permissions: + contents: read env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release @@ -13,21 +19,32 @@ jobs: # You can convert this to a matrix build if you need cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest + timeout-minutes: 20 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + - name: Cache ccache + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.ccache/linux + key: linux-ccache-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: linux-ccache- - name: install_dependencies run: | sudo apt-get update -y -qq - sudo apt-get install libsdl2-dev - - name: init_submodules - run: git submodule update --init --recursive + sudo apt-get install -y -qq libsdl2-dev ninja-build ccache - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON + env: + CCACHE_DIR: ${{ github.workspace }}/.ccache/linux + CCACHE_BASEDIR: ${{ github.workspace }} + run: cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel - name: Upload artifact uses: actions/upload-artifact@v4 with: @@ -37,156 +54,231 @@ jobs: working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + + build-macos: + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + include: + - runner: macos-latest + arch: arm64 + brew_prefix: /opt/homebrew + - runner: macos-13 + arch: x86_64 + brew_prefix: /usr/local + runs-on: ${{ matrix.runner }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + - name: Cache ccache + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.ccache/${{ matrix.arch }} + key: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache- + macos-ccache- + - name: install_dependencies + run: | + brew update + brew install sdl2 ninja ccache + - name: Configure CMake + env: + CCACHE_DIR: ${{ github.workspace }}/.ccache/${{ matrix.arch }} + CCACHE_BASEDIR: ${{ github.workspace }} + run: | + export PATH="${{ matrix.brew_prefix }}/opt/ccache/libexec:$PATH" + cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel + - name: Test + working-directory: ${{github.workspace}}/build + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ github.job }}-${{ matrix.arch }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + - name: Upload artifact + if: always() + uses: actions/upload-artifact@v4 + with: + name: DingusPPC-macOS-${{ matrix.arch }} + path: ${{github.workspace}}/build/bin + build-windows: runs-on: windows-latest + timeout-minutes: 45 strategy: matrix: cache-name: [msys64-cache] env: MSYSTEM: MINGW64 - FF_SCRIPT_SECTIONS: '0' - CONFIGURE_ARGS: '--target-list=x86_64-softmmu --without-default-devices -Ddebug=false -Doptimization=0' - TEST_ARGS: '--no-suite qtest' steps: - name: Checkout repository - uses: actions/checkout@v2 - - name: Set up MSYS2 - run: | - Write-Output "Acquiring msys2.exe installer at $(Get-Date -Format u)" - If ( !(Test-Path -Path msys64\var\cache ) ) { - mkdir msys64\var\cache - } - Invoke-WebRequest "https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe.sig" -outfile "msys2.exe.sig" - if ( Test-Path -Path msys64\var\cache\msys2.exe.sig ) { - Write-Output "Cached installer sig" ; - if ( ((Get-FileHash msys2.exe.sig).Hash -ne (Get-FileHash msys64\var\cache\msys2.exe.sig).Hash) ) { - Write-Output "Mis-matched installer sig, new installer download required" ; - Remove-Item -Path msys64\var\cache\msys2.exe.sig ; - if ( Test-Path -Path msys64\var\cache\msys2.exe ) { - Remove-Item -Path msys64\var\cache\msys2.exe - } - } else { - Write-Output "Matched installer sig, cached installer still valid" - } - } else { - Write-Output "No cached installer sig, new installer download required" ; - if ( Test-Path -Path msys64\var\cache\msys2.exe ) { - Remove-Item -Path msys64\var\cache\msys2.exe - } - } - if ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) { - Write-Output "Fetching latest installer" ; - Invoke-WebRequest "https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe" -outfile "msys64\var\cache\msys2.exe" ; - Copy-Item -Path msys2.exe.sig -Destination msys64\var\cache\msys2.exe.sig - } else { - Write-Output "Using cached installer" - } - Write-Output "Invoking msys2.exe installer at $(Get-Date -Format u)" - msys64\var\cache\msys2.exe -y - ((Get-Content -path .\msys64\etc\post-install\07-pacman-key.post -Raw) -replace '--refresh-keys', '--version') | Set-Content -Path .\msys64\etc\post-install\07-pacman-key.post - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf" - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Core update - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Normal update - taskkill /F /FI "MODULES eq msys-2.0.dll" - - name: Install dependencies - run: | - Write-Output "Installing mingw packages at $(Get-Date -Format u)" - .\msys64\usr\bin\bash -lc 'pacman -Sy --noconfirm --needed \ - bison \ - diffutils \ - flex \ - tar \ - doxygen \ - cmake \ - wget \ - git \ - grep \ - make \ - rsync \ - ninja \ - glib2-devel \ - patch \ - sed \ - mingw-w64-x86_64-cmake \ - mingw-w64-x86_64-binutils \ - mingw-w64-x86_64-doxygen \ - mingw-w64-x86_64-capstone \ - mingw-w64-x86_64-ccache \ - mingw-w64-x86_64-curl \ - mingw-w64-x86_64-cyrus-sasl \ - mingw-w64-x86_64-dtc \ - mingw-w64-x86_64-gcc \ - mingw-w64-x86_64-glib2 \ - mingw-w64-x86_64-gnutls \ - mingw-w64-x86_64-gtk3 \ - mingw-w64-x86_64-libgcrypt \ - mingw-w64-x86_64-libjpeg-turbo \ - mingw-w64-x86_64-libnfs \ - mingw-w64-x86_64-libpng \ - mingw-w64-x86_64-libssh \ - mingw-w64-x86_64-libtasn1 \ - mingw-w64-x86_64-libusb \ - mingw-w64-x86_64-lzo2 \ - mingw-w64-x86_64-libslirp \ - mingw-w64-x86_64-nettle \ - mingw-w64-x86_64-clang \ - mingw-w64-x86_64-ninja \ - mingw-w64-x86_64-pixman \ - mingw-w64-x86_64-pkgconf \ - mingw-w64-x86_64-python \ - mingw-w64-x86_64-SDL2 \ - mingw-w64-x86_64-SDL2_image \ - mingw-w64-x86_64-snappy \ - mingw-w64-x86_64-spice \ - mingw-w64-x86_64-usbredir \ - mingw-w64-x86_64-zstd \ - mingw-w64-x86_64-make' - - name: init_submodules - run: git submodule update --init --recursive + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + - name: Cache ccache + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.ccache/msys + key: windows-msys-ccache-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: windows-msys-ccache- + - name: Setup MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + install: >- + bison + diffutils + flex + tar + doxygen + cmake + wget + git + grep + make + rsync + ninja + glib2-devel + patch + sed + mingw-w64-x86_64-cmake + mingw-w64-x86_64-binutils + mingw-w64-x86_64-doxygen + mingw-w64-x86_64-capstone + mingw-w64-x86_64-ccache + mingw-w64-x86_64-curl + mingw-w64-x86_64-cyrus-sasl + mingw-w64-x86_64-dtc + mingw-w64-x86_64-gcc + mingw-w64-x86_64-glib2 + mingw-w64-x86_64-gnutls + mingw-w64-x86_64-gtk3 + mingw-w64-x86_64-libgcrypt + mingw-w64-x86_64-libjpeg-turbo + mingw-w64-x86_64-libnfs + mingw-w64-x86_64-libpng + mingw-w64-x86_64-libssh + mingw-w64-x86_64-libtasn1 + mingw-w64-x86_64-libusb + mingw-w64-x86_64-lzo2 + mingw-w64-x86_64-libslirp + mingw-w64-x86_64-nettle + mingw-w64-x86_64-clang + mingw-w64-x86_64-ninja + mingw-w64-x86_64-pixman + mingw-w64-x86_64-pkgconf + mingw-w64-x86_64-python + mingw-w64-x86_64-SDL2 + mingw-w64-x86_64-SDL2_image + mingw-w64-x86_64-snappy + mingw-w64-x86_64-spice + mingw-w64-x86_64-usbredir + mingw-w64-x86_64-zstd + mingw-w64-x86_64-make - name: Build + shell: msys2 {0} + run: | + echo "Running build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" + export CHERE_INVOKING=yes + export MSYS=winsymlinks:native + export CCACHE_BASEDIR="${GITHUB_WORKSPACE}" + export CCACHE_DIR="${GITHUB_WORKSPACE}/.ccache/msys" + export CCACHE_MAXSIZE="500M" + export CCACHE_DEPEND=1 + export CC="ccache gcc" + mkdir -p build + cd build + ccache --zero-stats || true + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True .. + ninja + ccache --show-stats || true + echo "Finished build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" + + - name: Test + shell: msys2 {0} run: | - Write-Output "Running build at $(Get-Date -Format u)" - $env:CHERE_INVOKING = 'yes' # Preserve the current working directory - $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink - $env:CCACHE_BASEDIR = "$env:CI_PROJECT_DIR" - $env:CCACHE_DIR = "$env:CCACHE_BASEDIR/ccache" - $env:CCACHE_MAXSIZE = "500M" - $env:CCACHE_DEPEND = 1 # cache misses are too expensive with preprocessor mode - $env:CC = "ccache gcc" - mkdir build cd build - D:\a\dingusppc\dingusppc\msys64\usr\bin\bash -lc "ccache --zero-stats" - D:\a\dingusppc\dingusppc\msys64\usr\bin\bash -lc "cmake -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True .. && ninja" - D:\a\dingusppc\dingusppc\msys64\usr\bin\bash -lc "ccache --show-stats" - Write-Output "Finished build at $(Get-Date -Format u)" + ctest --output-on-failure + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore - vsbuild-CLANG: runs-on: windows-latest + timeout-minutes: 45 + env: + VCPKG_FEATURE_FLAGS: binarycaching steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 - name: Setup msbuild - if: inputs.configuration != 'CMake' uses: microsoft/setup-msbuild@v1 - - name: Setup VCPKG - run: | - vcpkg integrate install - vcpkg install pthread:x64-windows - vcpkg install pthreads:x64-windows - vcpkg install pthread-stubs:x64-windows - vcpkg install pthreadpool:x64-windows - vcpkg install - - name: init_submodules - run: git submodule update --init --recursive + - name: Setup vcpkg (cache) + uses: microsoft/setup-vcpkg@v1 + with: + vcpkgJson: ${{ github.workspace }}/vcpkg.json + cacheBinary: true + - name: vcpkg install + run: vcpkg install --triplet x64-windows + working-directory: ${{ github.workspace }} + - name: Install Ninja + run: choco install ninja -y - name: Build shell: cmd run: | mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. - nmake + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + ninja + - name: Test + if: success() + working-directory: ${{github.workspace}}/build + run: ctest -C Release --output-on-failure + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore - name: Upload artifact if: always() uses: actions/upload-artifact@v4 @@ -194,33 +286,50 @@ jobs: name: DingusPPC-CLANG path: ${{github.workspace}}/build/bin - - vsbuild-MSVC: runs-on: windows-latest + timeout-minutes: 45 + env: + VCPKG_FEATURE_FLAGS: binarycaching steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 - name: Setup msbuild - if: inputs.configuration != 'CMake' uses: microsoft/setup-msbuild@v1 - - name: Setup VCPKG - run: | - vcpkg integrate install - vcpkg install pthread:x64-windows - vcpkg install pthreads:x64-windows - vcpkg install pthread-stubs:x64-windows - vcpkg install pthreadpool:x64-windows - vcpkg install - - name: init_submodules - run: git submodule update --init --recursive + - name: Setup vcpkg (cache) + uses: microsoft/setup-vcpkg@v1 + with: + vcpkgJson: ${{ github.workspace }}/vcpkg.json + cacheBinary: true + - name: vcpkg install + run: vcpkg install --triplet x64-windows + working-directory: ${{ github.workspace }} + - name: Install Ninja + run: choco install ninja -y - name: Build shell: cmd run: | mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. - nmake + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + ninja + - name: Test + if: success() + working-directory: ${{github.workspace}}/build + run: ctest -C Release --output-on-failure + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore - name: Upload artifact if: always() uses: actions/upload-artifact@v4 @@ -228,27 +337,26 @@ jobs: name: DingusPPC-MSVC path: ${{github.workspace}}/build/bin - - - - vsbuild-MSVC-MSBUILD: runs-on: windows-latest + timeout-minutes: 45 + env: + VCPKG_FEATURE_FLAGS: binarycaching steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 - name: Setup msbuild - if: inputs.configuration != 'CMake' uses: microsoft/setup-msbuild@v1 - - name: Setup VCPKG - run: | - vcpkg integrate install - vcpkg install pthread:x64-windows - vcpkg install pthreads:x64-windows - vcpkg install pthread-stubs:x64-windows - vcpkg install pthreadpool:x64-windows - vcpkg install - - name: init_submodules - run: git submodule update --init --recursive + - name: Setup vcpkg (cache) + uses: microsoft/setup-vcpkg@v1 + with: + vcpkgJson: ${{ github.workspace }}/vcpkg.json + cacheBinary: true + - name: vcpkg install + run: vcpkg install --triplet x64-windows + working-directory: ${{ github.workspace }} - name: Build shell: cmd run: | @@ -256,7 +364,21 @@ jobs: cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. - msbuild dingusppc.sln + msbuild dingusppc.sln /m + - name: Test + if: success() + working-directory: ${{github.workspace}}/build + run: ctest -C Release --output-on-failure + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore - name: Upload artifact if: always() uses: actions/upload-artifact@v4 From d0b1ad0e7756b4ebc3497beaa2d2af3a952e240f Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Wed, 4 Feb 2026 21:00:36 -0500 Subject: [PATCH 02/22] Fix --- .github/workflows/cmake.yml | 62 ++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index b4de6056e4..05e2ffd3c4 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -75,7 +75,7 @@ jobs: - runner: macos-latest arch: arm64 brew_prefix: /opt/homebrew - - runner: macos-13 + - runner: macos-15-intel arch: x86_64 brew_prefix: /usr/local runs-on: ${{ matrix.runner }} @@ -247,14 +247,20 @@ jobs: fetch-depth: 0 - name: Setup msbuild uses: microsoft/setup-msbuild@v1 - - name: Setup vcpkg (cache) - uses: microsoft/setup-vcpkg@v1 + - name: Cache vcpkg + uses: actions/cache@v4 with: - vcpkgJson: ${{ github.workspace }}/vcpkg.json - cacheBinary: true - - name: vcpkg install - run: vcpkg install --triplet x64-windows - working-directory: ${{ github.workspace }} + path: C:\vcpkg + key: vcpkg-${{ hashFiles('vcpkg.json') }} + restore-keys: vcpkg- + - name: Install vcpkg + shell: powershell + run: | + if (-Not (Test-Path 'C:\vcpkg')) { + git clone https://github.com/microsoft/vcpkg C:\vcpkg + C:\vcpkg\bootstrap-vcpkg.bat + } + C:\vcpkg\vcpkg.exe install --triplet x64-windows - name: Install Ninja run: choco install ninja -y - name: Build @@ -298,14 +304,20 @@ jobs: fetch-depth: 0 - name: Setup msbuild uses: microsoft/setup-msbuild@v1 - - name: Setup vcpkg (cache) - uses: microsoft/setup-vcpkg@v1 + - name: Cache vcpkg + uses: actions/cache@v4 with: - vcpkgJson: ${{ github.workspace }}/vcpkg.json - cacheBinary: true - - name: vcpkg install - run: vcpkg install --triplet x64-windows - working-directory: ${{ github.workspace }} + path: C:\vcpkg + key: vcpkg-${{ hashFiles('vcpkg.json') }} + restore-keys: vcpkg- + - name: Install vcpkg + shell: powershell + run: | + if (-Not (Test-Path 'C:\vcpkg')) { + git clone https://github.com/microsoft/vcpkg C:\vcpkg + C:\vcpkg\bootstrap-vcpkg.bat + } + C:\vcpkg\vcpkg.exe install --triplet x64-windows - name: Install Ninja run: choco install ninja -y - name: Build @@ -349,14 +361,20 @@ jobs: fetch-depth: 0 - name: Setup msbuild uses: microsoft/setup-msbuild@v1 - - name: Setup vcpkg (cache) - uses: microsoft/setup-vcpkg@v1 + - name: Cache vcpkg + uses: actions/cache@v4 with: - vcpkgJson: ${{ github.workspace }}/vcpkg.json - cacheBinary: true - - name: vcpkg install - run: vcpkg install --triplet x64-windows - working-directory: ${{ github.workspace }} + path: C:\vcpkg + key: vcpkg-${{ hashFiles('vcpkg.json') }} + restore-keys: vcpkg- + - name: Install vcpkg + shell: powershell + run: | + if (-Not (Test-Path 'C:\vcpkg')) { + git clone https://github.com/microsoft/vcpkg C:\vcpkg + C:\vcpkg\bootstrap-vcpkg.bat + } + C:\vcpkg\vcpkg.exe install --triplet x64-windows - name: Build shell: cmd run: | From 486a2a956c8e7059b1f1c2ebf366eaa5adfcb7d0 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Wed, 4 Feb 2026 21:39:37 -0500 Subject: [PATCH 03/22] Fix build-windows --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee549c749c..0eef78c9f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,7 +147,7 @@ add_executable(dingusppc ${SOURCES} $ $) if (WIN32) - target_link_libraries(dingusppc PRIVATE SDL2::SDL2 SDL2::SDL2main cubeb) + target_link_libraries(dingusppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb) elseif (EMSCRIPTEN) target_link_libraries(dingusppc PRIVATE ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} @@ -159,7 +159,7 @@ elseif (EMSCRIPTEN) "-s EXPORT_NAME=emulator" "-s 'EXTRA_EXPORTED_RUNTIME_METHODS=[\"FS\"]'") else() - target_link_libraries(dingusppc PRIVATE SDL2::SDL2 SDL2::SDL2main cubeb + target_link_libraries(dingusppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) endif() @@ -183,9 +183,9 @@ if (DPPC_BUILD_PPC_TESTS) $) if (WIN32) - target_link_libraries(testppc PRIVATE SDL2::SDL2 SDL2::SDL2main cubeb) + target_link_libraries(testppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb) else() - target_link_libraries(testppc PRIVATE SDL2::SDL2 SDL2::SDL2main cubeb + target_link_libraries(testppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) endif() @@ -208,7 +208,7 @@ if (DPPC_BUILD_BENCHMARKS) $ $) - target_link_libraries(bench1 PRIVATE cubeb SDL2::SDL2 SDL2::SDL2main ${CMAKE_DL_LIBS} + target_link_libraries(bench1 PRIVATE cubeb SDL2::SDL2main SDL2::SDL2 ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) if (DPPC_68K_DEBUGGER) From 8b1dffd4a4f530b62e75e8fb34060840a3b60571 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Wed, 4 Feb 2026 21:48:26 -0500 Subject: [PATCH 04/22] Fix Windows again --- .github/workflows/cmake.yml | 2 +- CMakeLists.txt | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 05e2ffd3c4..b7f9fd579f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -214,7 +214,7 @@ jobs: mkdir -p build cd build ccache --zero-stats || true - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True .. + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True .. ninja ccache --show-stats || true echo "Finished build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" diff --git a/CMakeLists.txt b/CMakeLists.txt index 0eef78c9f7..30ab93df94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,7 +147,8 @@ add_executable(dingusppc ${SOURCES} $ $) if (WIN32) - target_link_libraries(dingusppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb) + target_link_libraries(dingusppc PRIVATE SDL2::SDL2 cubeb) + target_compile_definitions(dingusppc PRIVATE SDL_MAIN_HANDLED) elseif (EMSCRIPTEN) target_link_libraries(dingusppc PRIVATE ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} @@ -183,7 +184,8 @@ if (DPPC_BUILD_PPC_TESTS) $) if (WIN32) - target_link_libraries(testppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb) + target_link_libraries(testppc PRIVATE SDL2::SDL2 cubeb) + target_compile_definitions(testppc PRIVATE SDL_MAIN_HANDLED) else() target_link_libraries(testppc PRIVATE SDL2::SDL2main SDL2::SDL2 cubeb ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) @@ -208,8 +210,11 @@ if (DPPC_BUILD_BENCHMARKS) $ $) - target_link_libraries(bench1 PRIVATE cubeb SDL2::SDL2main SDL2::SDL2 ${CMAKE_DL_LIBS} + target_link_libraries(bench1 PRIVATE cubeb SDL2::SDL2 ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) + if (WIN32) + target_compile_definitions(bench1 PRIVATE SDL_MAIN_HANDLED) + endif() if (DPPC_68K_DEBUGGER) target_link_libraries(bench1 PRIVATE capstone) From 5006d642c818cf620d4af9429c23ed4c903eca7c Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Thu, 5 Feb 2026 21:26:59 -0500 Subject: [PATCH 05/22] fix flags --- .github/workflows/cmake.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index b7f9fd579f..87cbdc4571 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -269,7 +269,7 @@ jobs: mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. ninja - name: Test if: success() @@ -326,7 +326,7 @@ jobs: mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. ninja - name: Test if: success() @@ -381,7 +381,7 @@ jobs: mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. msbuild dingusppc.sln /m - name: Test if: success() From cdd5f1dd804175e0eecbb6df88f5c17f90718725 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Thu, 5 Feb 2026 21:37:47 -0500 Subject: [PATCH 06/22] vsbuild matrix --- .github/workflows/cmake.yml | 144 +++++++----------------------------- 1 file changed, 26 insertions(+), 118 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 87cbdc4571..40941e3d98 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -235,68 +235,30 @@ jobs: ${{ github.workspace }}/build/CMakeFiles/CMakeError.log if-no-files-found: ignore - vsbuild-CLANG: - runs-on: windows-latest - timeout-minutes: 45 - env: - VCPKG_FEATURE_FLAGS: binarycaching - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 0 - - name: Setup msbuild - uses: microsoft/setup-msbuild@v1 - - name: Cache vcpkg - uses: actions/cache@v4 - with: - path: C:\vcpkg - key: vcpkg-${{ hashFiles('vcpkg.json') }} - restore-keys: vcpkg- - - name: Install vcpkg - shell: powershell - run: | - if (-Not (Test-Path 'C:\vcpkg')) { - git clone https://github.com/microsoft/vcpkg C:\vcpkg - C:\vcpkg\bootstrap-vcpkg.bat - } - C:\vcpkg\vcpkg.exe install --triplet x64-windows - - name: Install Ninja - run: choco install ninja -y - - name: Build - shell: cmd - run: | - mkdir build - cd build - call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. - ninja - - name: Test - if: success() - working-directory: ${{github.workspace}}/build - run: ctest -C Release --output-on-failure - - name: Upload logs on failure - if: failure() - uses: actions/upload-artifact@v4 - with: - name: logs-${{ github.job }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore - - name: Upload artifact - if: always() - uses: actions/upload-artifact@v4 - with: - name: DingusPPC-CLANG - path: ${{github.workspace}}/build/bin - - vsbuild-MSVC: + vsbuild: runs-on: windows-latest timeout-minutes: 45 env: VCPKG_FEATURE_FLAGS: binarycaching + strategy: + fail-fast: false + matrix: + include: + - name: clang + generator: Ninja + cmake_args: -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl + build_command: ninja + upload_suffix: CLANG + - name: msvc + generator: Ninja + cmake_args: "" + build_command: ninja + upload_suffix: MSVC + - name: msbuild + generator: "Visual Studio 17 2022" + cmake_args: "" + build_command: msbuild dingusppc.sln /m + upload_suffix: MSBUILD steps: - uses: actions/checkout@v4 with: @@ -319,15 +281,16 @@ jobs: } C:\vcpkg\vcpkg.exe install --triplet x64-windows - name: Install Ninja + if: matrix.generator == 'Ninja' run: choco install ninja -y - - name: Build + - name: Configure & Build shell: cmd run: | mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. - ninja + cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. + ${{ matrix.build_command }} - name: Test if: success() working-directory: ${{github.workspace}}/build @@ -336,62 +299,7 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: - name: logs-${{ github.job }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore - - name: Upload artifact - if: always() - uses: actions/upload-artifact@v4 - with: - name: DingusPPC-MSVC - path: ${{github.workspace}}/build/bin - - vsbuild-MSVC-MSBUILD: - runs-on: windows-latest - timeout-minutes: 45 - env: - VCPKG_FEATURE_FLAGS: binarycaching - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 0 - - name: Setup msbuild - uses: microsoft/setup-msbuild@v1 - - name: Cache vcpkg - uses: actions/cache@v4 - with: - path: C:\vcpkg - key: vcpkg-${{ hashFiles('vcpkg.json') }} - restore-keys: vcpkg- - - name: Install vcpkg - shell: powershell - run: | - if (-Not (Test-Path 'C:\vcpkg')) { - git clone https://github.com/microsoft/vcpkg C:\vcpkg - C:\vcpkg\bootstrap-vcpkg.bat - } - C:\vcpkg\vcpkg.exe install --triplet x64-windows - - name: Build - shell: cmd - run: | - mkdir build - cd build - call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. - msbuild dingusppc.sln /m - - name: Test - if: success() - working-directory: ${{github.workspace}}/build - run: ctest -C Release --output-on-failure - - name: Upload logs on failure - if: failure() - uses: actions/upload-artifact@v4 - with: - name: logs-${{ github.job }} + name: logs-${{ github.job }}-${{ matrix.name }} path: | ${{ github.workspace }}/build/Testing/Temporary/LastTest.log ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log @@ -401,5 +309,5 @@ jobs: if: always() uses: actions/upload-artifact@v4 with: - name: DingusPPC-MSBUILD + name: DingusPPC-${{ matrix.upload_suffix }} path: ${{github.workspace}}/build/bin From 27ee06b3970e84de1f0e5eab46d14da6d2cfd0bc Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Thu, 5 Feb 2026 22:00:45 -0500 Subject: [PATCH 07/22] artifact retention, upload logs anchor --- .github/workflows/cmake.yml | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 40941e3d98..4866c02368 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -10,6 +10,14 @@ concurrency: cancel-in-progress: true permissions: contents: read +x-upload-logs-with: &upload_logs_with + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release @@ -50,6 +58,7 @@ jobs: with: name: DingusPPC-LINUX path: ${{github.workspace}}/build/bin + retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} - name: Test working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. @@ -59,12 +68,7 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: - name: logs-${{ github.job }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore + <<: *upload_logs_with build-macos: timeout-minutes: 30 @@ -112,18 +116,15 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: + <<: *upload_logs_with name: logs-${{ github.job }}-${{ matrix.arch }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore - name: Upload artifact if: always() uses: actions/upload-artifact@v4 with: name: DingusPPC-macOS-${{ matrix.arch }} path: ${{github.workspace}}/build/bin + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} build-windows: runs-on: windows-latest @@ -228,12 +229,14 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: - name: logs-${{ github.job }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore + <<: *upload_logs_with + - name: Upload artifact + if: always() + uses: actions/upload-artifact@v4 + with: + name: DingusPPC-MSYS + path: ${{github.workspace}}/build/bin + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} vsbuild: runs-on: windows-latest @@ -299,15 +302,12 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: + <<: *upload_logs_with name: logs-${{ github.job }}-${{ matrix.name }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore - name: Upload artifact if: always() uses: actions/upload-artifact@v4 with: name: DingusPPC-${{ matrix.upload_suffix }} path: ${{github.workspace}}/build/bin + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} From 58ea432dbcf06b96a6d8d2d51ff680d1ce879e87 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Thu, 5 Feb 2026 22:11:14 -0500 Subject: [PATCH 08/22] fix anchor --- .github/workflows/cmake.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 4866c02368..dd809133f1 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -10,14 +10,6 @@ concurrency: cancel-in-progress: true permissions: contents: read -x-upload-logs-with: &upload_logs_with - name: logs-${{ github.job }} - path: | - ${{ github.workspace }}/build/Testing/Temporary/LastTest.log - ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log - ${{ github.workspace }}/build/CMakeFiles/CMakeError.log - if-no-files-found: ignore - retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release @@ -67,8 +59,14 @@ jobs: - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 - with: - <<: *upload_logs_with + with: &upload_logs_with + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} build-macos: timeout-minutes: 30 From f855d900879ad0a0f6686c972b2a325b3c425d77 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Thu, 5 Feb 2026 22:13:55 -0500 Subject: [PATCH 09/22] no anchors --- .github/workflows/cmake.yml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index dd809133f1..4e0e9545a3 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -59,7 +59,7 @@ jobs: - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 - with: &upload_logs_with + with: name: logs-${{ github.job }} path: | ${{ github.workspace }}/build/Testing/Temporary/LastTest.log @@ -114,8 +114,13 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: - <<: *upload_logs_with name: logs-${{ github.job }}-${{ matrix.arch }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} - name: Upload artifact if: always() uses: actions/upload-artifact@v4 @@ -227,7 +232,13 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: - <<: *upload_logs_with + name: logs-${{ github.job }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} - name: Upload artifact if: always() uses: actions/upload-artifact@v4 @@ -300,8 +311,13 @@ jobs: if: failure() uses: actions/upload-artifact@v4 with: - <<: *upload_logs_with name: logs-${{ github.job }}-${{ matrix.name }} + path: | + ${{ github.workspace }}/build/Testing/Temporary/LastTest.log + ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log + ${{ github.workspace }}/build/CMakeFiles/CMakeError.log + if-no-files-found: ignore + retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} - name: Upload artifact if: always() uses: actions/upload-artifact@v4 From 22c551fa3c3c06490d6d35e9da2ad211b718a43c Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 11:00:25 -0500 Subject: [PATCH 10/22] Skip installing ninja on macos, already installed on runners --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 4e0e9545a3..f14a97d317 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -97,7 +97,7 @@ jobs: - name: install_dependencies run: | brew update - brew install sdl2 ninja ccache + brew install sdl2 ccache - name: Configure CMake env: CCACHE_DIR: ${{ github.workspace }}/.ccache/${{ matrix.arch }} From 9546f92f8c9c12c322235ee2bd9dd4b6e0c9e918 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 11:12:59 -0500 Subject: [PATCH 11/22] tweaks --- .github/workflows/cmake.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index f14a97d317..a18ec22ad5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -14,7 +14,7 @@ env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: - build: + build-linux: # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. # You can convert this to a matrix build if you need cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix @@ -31,7 +31,7 @@ jobs: path: ${{ github.workspace }}/.ccache/linux key: linux-ccache-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: linux-ccache- - - name: install_dependencies + - name: Install dependencies run: | sudo apt-get update -y -qq sudo apt-get install -y -qq libsdl2-dev ninja-build ccache @@ -94,10 +94,11 @@ jobs: restore-keys: | macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache- macos-ccache- - - name: install_dependencies + - name: Install dependencies run: | - brew update - brew install sdl2 ccache + export HOMEBREW_NO_AUTO_UPDATE=1 + brew install sdl2 ccache ninja + brew link --overwrite openssl@3 || true - name: Configure CMake env: CCACHE_DIR: ${{ github.workspace }}/.ccache/${{ matrix.arch }} @@ -247,7 +248,7 @@ jobs: path: ${{github.workspace}}/build/bin retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} - vsbuild: + build-windows-vsbuild: runs-on: windows-latest timeout-minutes: 45 env: From f8702df99ae0913f7560e9641955e836d8e3f04c Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 11:30:41 -0500 Subject: [PATCH 12/22] addl updates --- .github/workflows/cmake.yml | 109 +++++++++++------------------------- 1 file changed, 32 insertions(+), 77 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index a18ec22ad5..c098de2b7a 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -24,7 +24,6 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive - fetch-depth: 0 - name: Cache ccache uses: actions/cache@v4 with: @@ -41,16 +40,10 @@ jobs: env: CCACHE_DIR: ${{ github.workspace }}/.ccache/linux CCACHE_BASEDIR: ${{ github.workspace }} - run: cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + run: cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - name: Build # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: DingusPPC-LINUX - path: ${{github.workspace}}/build/bin - retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} - name: Test working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. @@ -66,7 +59,14 @@ jobs: ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log ${{ github.workspace }}/build/CMakeFiles/CMakeError.log if-no-files-found: ignore - retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} + - name: Upload artifact + if: always() + uses: actions/upload-artifact@v4 + with: + name: DingusPPC-LINUX + path: ${{github.workspace}}/build/bin + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} build-macos: timeout-minutes: 30 @@ -85,7 +85,6 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive - fetch-depth: 0 - name: Cache ccache uses: actions/cache@v4 with: @@ -105,7 +104,7 @@ jobs: CCACHE_BASEDIR: ${{ github.workspace }} run: | export PATH="${{ matrix.brew_prefix }}/opt/ccache/libexec:$PATH" - cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} + cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel - name: Test @@ -121,7 +120,7 @@ jobs: ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log ${{ github.workspace }}/build/CMakeFiles/CMakeError.log if-no-files-found: ignore - retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} - name: Upload artifact if: always() uses: actions/upload-artifact@v4 @@ -133,9 +132,6 @@ jobs: build-windows: runs-on: windows-latest timeout-minutes: 45 - strategy: - matrix: - cache-name: [msys64-cache] env: MSYSTEM: MINGW64 steps: @@ -143,7 +139,6 @@ jobs: uses: actions/checkout@v4 with: submodules: recursive - fetch-depth: 0 - name: Cache ccache uses: actions/cache@v4 with: @@ -156,54 +151,17 @@ jobs: msystem: MINGW64 update: true install: >- - bison - diffutils - flex - tar - doxygen cmake - wget - git - grep make - rsync ninja - glib2-devel - patch - sed + git mingw-w64-x86_64-cmake - mingw-w64-x86_64-binutils - mingw-w64-x86_64-doxygen - mingw-w64-x86_64-capstone - mingw-w64-x86_64-ccache - mingw-w64-x86_64-curl - mingw-w64-x86_64-cyrus-sasl - mingw-w64-x86_64-dtc mingw-w64-x86_64-gcc - mingw-w64-x86_64-glib2 - mingw-w64-x86_64-gnutls - mingw-w64-x86_64-gtk3 - mingw-w64-x86_64-libgcrypt - mingw-w64-x86_64-libjpeg-turbo - mingw-w64-x86_64-libnfs - mingw-w64-x86_64-libpng - mingw-w64-x86_64-libssh - mingw-w64-x86_64-libtasn1 - mingw-w64-x86_64-libusb - mingw-w64-x86_64-lzo2 - mingw-w64-x86_64-libslirp - mingw-w64-x86_64-nettle - mingw-w64-x86_64-clang + mingw-w64-x86_64-binutils mingw-w64-x86_64-ninja - mingw-w64-x86_64-pixman mingw-w64-x86_64-pkgconf - mingw-w64-x86_64-python mingw-w64-x86_64-SDL2 - mingw-w64-x86_64-SDL2_image - mingw-w64-x86_64-snappy - mingw-w64-x86_64-spice - mingw-w64-x86_64-usbredir - mingw-w64-x86_64-zstd + mingw-w64-x86_64-ccache mingw-w64-x86_64-make - name: Build shell: msys2 {0} @@ -215,11 +173,10 @@ jobs: export CCACHE_DIR="${GITHUB_WORKSPACE}/.ccache/msys" export CCACHE_MAXSIZE="500M" export CCACHE_DEPEND=1 - export CC="ccache gcc" mkdir -p build cd build ccache --zero-stats || true - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True .. + cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .. ninja ccache --show-stats || true echo "Finished build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" @@ -239,7 +196,7 @@ jobs: ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log ${{ github.workspace }}/build/CMakeFiles/CMakeError.log if-no-files-found: ignore - retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} - name: Upload artifact if: always() uses: actions/upload-artifact@v4 @@ -276,36 +233,34 @@ jobs: - uses: actions/checkout@v4 with: submodules: recursive - fetch-depth: 0 - name: Setup msbuild uses: microsoft/setup-msbuild@v1 - - name: Cache vcpkg - uses: actions/cache@v4 - with: - path: C:\vcpkg - key: vcpkg-${{ hashFiles('vcpkg.json') }} - restore-keys: vcpkg- - - name: Install vcpkg - shell: powershell - run: | - if (-Not (Test-Path 'C:\vcpkg')) { - git clone https://github.com/microsoft/vcpkg C:\vcpkg - C:\vcpkg\bootstrap-vcpkg.bat - } - C:\vcpkg\vcpkg.exe install --triplet x64-windows + - name: Install vcpkg packages + shell: cmd + run: '"%VCPKG_INSTALLATION_ROOT%\vcpkg.exe" install --triplet x64-windows' - name: Install Ninja if: matrix.generator == 'Ninja' run: choco install ninja -y + - name: Cache ccache + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.ccache/vsbuild + key: vsbuild-${{ matrix.name }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: vsbuild-${{ matrix.name }}-ccache- + - name: Install ccache + run: choco install ccache -y - name: Configure & Build shell: cmd + env: + CCACHE_DIR: ${{ github.workspace }}/.ccache/vsbuild + CCACHE_BASEDIR: ${{ github.workspace }} run: | mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. + cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=Release -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. ${{ matrix.build_command }} - name: Test - if: success() working-directory: ${{github.workspace}}/build run: ctest -C Release --output-on-failure - name: Upload logs on failure @@ -318,7 +273,7 @@ jobs: ${{ github.workspace }}/build/CMakeFiles/CMakeOutput.log ${{ github.workspace }}/build/CMakeFiles/CMakeError.log if-no-files-found: ignore - retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }} + retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} - name: Upload artifact if: always() uses: actions/upload-artifact@v4 From b3c0b201641d6c55f566a9866c8ec3e38939b6dd Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 13:47:29 -0500 Subject: [PATCH 13/22] rm brew link --- .github/workflows/cmake.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index c098de2b7a..a7bd89111a 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -97,7 +97,6 @@ jobs: run: | export HOMEBREW_NO_AUTO_UPDATE=1 brew install sdl2 ccache ninja - brew link --overwrite openssl@3 || true - name: Configure CMake env: CCACHE_DIR: ${{ github.workspace }}/.ccache/${{ matrix.arch }} From be60daee5f1a0f8ca6b0722618d0e4da9349336b Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 13:52:36 -0500 Subject: [PATCH 14/22] msys2 --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index a7bd89111a..0056b09069 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -128,7 +128,7 @@ jobs: path: ${{github.workspace}}/build/bin retention-days: ${{ github.event_name == 'pull_request' && 7 || 30 }} - build-windows: + build-windows-msys2: runs-on: windows-latest timeout-minutes: 45 env: From 434099559cca62946659eed33228239aa7358ae7 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 13:55:29 -0500 Subject: [PATCH 15/22] ccache windows only ninja --- .github/workflows/cmake.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 0056b09069..36b59e058e 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -241,12 +241,14 @@ jobs: if: matrix.generator == 'Ninja' run: choco install ninja -y - name: Cache ccache + if: matrix.generator == 'Ninja' uses: actions/cache@v4 with: path: ${{ github.workspace }}/.ccache/vsbuild key: vsbuild-${{ matrix.name }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: vsbuild-${{ matrix.name }}-ccache- - name: Install ccache + if: matrix.generator == 'Ninja' run: choco install ccache -y - name: Configure & Build shell: cmd From 6edbb5da5af1d63fbdd7aa674a915add8684dedd Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 14:00:58 -0500 Subject: [PATCH 16/22] tweaks --- .github/workflows/cmake.yml | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 36b59e058e..e0c2a12060 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -90,9 +90,7 @@ jobs: with: path: ${{ github.workspace }}/.ccache/${{ matrix.arch }} key: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} - restore-keys: | - macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache- - macos-ccache- + restore-keys: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache- - name: Install dependencies run: | export HOMEBREW_NO_AUTO_UPDATE=1 @@ -151,7 +149,6 @@ jobs: update: true install: >- cmake - make ninja git mingw-w64-x86_64-cmake @@ -161,7 +158,6 @@ jobs: mingw-w64-x86_64-pkgconf mingw-w64-x86_64-SDL2 mingw-w64-x86_64-ccache - mingw-w64-x86_64-make - name: Build shell: msys2 {0} run: | @@ -170,13 +166,10 @@ jobs: export MSYS=winsymlinks:native export CCACHE_BASEDIR="${GITHUB_WORKSPACE}" export CCACHE_DIR="${GITHUB_WORKSPACE}/.ccache/msys" - export CCACHE_MAXSIZE="500M" export CCACHE_DEPEND=1 - mkdir -p build - cd build ccache --zero-stats || true - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .. - ninja + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + cmake --build build --config Release --parallel ccache --show-stats || true echo "Finished build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" @@ -216,17 +209,17 @@ jobs: - name: clang generator: Ninja cmake_args: -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl - build_command: ninja + ccache_args: -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache upload_suffix: CLANG - name: msvc generator: Ninja cmake_args: "" - build_command: ninja + ccache_args: -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache upload_suffix: MSVC - name: msbuild generator: "Visual Studio 17 2022" cmake_args: "" - build_command: msbuild dingusppc.sln /m + ccache_args: "" upload_suffix: MSBUILD steps: - uses: actions/checkout@v4 @@ -244,7 +237,7 @@ jobs: if: matrix.generator == 'Ninja' uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.ccache/vsbuild + path: ${{ github.workspace }}/.ccache/vsbuild-${{ matrix.name }} key: vsbuild-${{ matrix.name }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: vsbuild-${{ matrix.name }}-ccache- - name: Install ccache @@ -253,17 +246,17 @@ jobs: - name: Configure & Build shell: cmd env: - CCACHE_DIR: ${{ github.workspace }}/.ccache/vsbuild + CCACHE_DIR: ${{ github.workspace }}/.ccache/vsbuild-${{ matrix.name }} CCACHE_BASEDIR: ${{ github.workspace }} run: | mkdir build cd build call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=Release -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. - ${{ matrix.build_command }} + cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON ${{ matrix.ccache_args }} -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. + cmake --build . --config ${{ env.BUILD_TYPE }} --parallel - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C Release --output-on-failure + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 From 157d7ed1953e9685cb5b35c7b5e8fd4ebdd2aef7 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 14:15:12 -0500 Subject: [PATCH 17/22] tweaks --- .github/workflows/cmake.yml | 63 +++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index e0c2a12060..842db8541b 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -28,8 +28,8 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.ccache/linux - key: linux-ccache-${{ hashFiles('**/CMakeLists.txt') }} - restore-keys: linux-ccache- + key: linux-ccache-${{ runner.os }}-${{ env.BUILD_TYPE }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: linux-ccache-${{ runner.os }}-${{ env.BUILD_TYPE }}- - name: Install dependencies run: | sudo apt-get update -y -qq @@ -40,15 +40,17 @@ jobs: env: CCACHE_DIR: ${{ github.workspace }}/.ccache/linux CCACHE_BASEDIR: ${{ github.workspace }} - run: cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + run: cmake -S . -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - name: Build # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel + - name: ccache stats + run: ccache --show-stats || true - name: Test working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --no-tests=error --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -89,11 +91,12 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.ccache/${{ matrix.arch }} - key: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} - restore-keys: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache- + key: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache-${{ env.BUILD_TYPE }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: macos-${{ matrix.runner }}-${{ matrix.arch }}-ccache-${{ env.BUILD_TYPE }}- - name: Install dependencies run: | export HOMEBREW_NO_AUTO_UPDATE=1 + export HOMEBREW_NO_INSTALL_CLEANUP=1 brew install sdl2 ccache ninja - name: Configure CMake env: @@ -101,12 +104,14 @@ jobs: CCACHE_BASEDIR: ${{ github.workspace }} run: | export PATH="${{ matrix.brew_prefix }}/opt/ccache/libexec:$PATH" - cmake -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} + cmake -S . -B ${{github.workspace}}/build -GNinja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel + - name: ccache stats + run: ccache --show-stats || true - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --no-tests=error --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -140,8 +145,8 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.ccache/msys - key: windows-msys-ccache-${{ hashFiles('**/CMakeLists.txt') }} - restore-keys: windows-msys-ccache- + key: windows-msys-ccache-${{ env.BUILD_TYPE }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: windows-msys-ccache-${{ env.BUILD_TYPE }}- - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: @@ -168,8 +173,8 @@ jobs: export CCACHE_DIR="${GITHUB_WORKSPACE}/.ccache/msys" export CCACHE_DEPEND=1 ccache --zero-stats || true - cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - cmake --build build --config Release --parallel + cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + cmake --build build --config ${{ env.BUILD_TYPE }} --parallel ccache --show-stats || true echo "Finished build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" @@ -177,7 +182,7 @@ jobs: shell: msys2 {0} run: | cd build - ctest --output-on-failure + ctest --output-on-failure --no-tests=error --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -227,6 +232,15 @@ jobs: submodules: recursive - name: Setup msbuild uses: microsoft/setup-msbuild@v1 + - name: Cache vcpkg + uses: actions/cache@v4 + with: + path: | + ${{ env.VCPKG_INSTALLATION_ROOT }}\downloads + ${{ env.VCPKG_INSTALLATION_ROOT }}\buildtrees + ${{ env.VCPKG_INSTALLATION_ROOT }}\packages + key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }} + restore-keys: vcpkg-${{ runner.os }}- - name: Install vcpkg packages shell: cmd run: '"%VCPKG_INSTALLATION_ROOT%\vcpkg.exe" install --triplet x64-windows' @@ -238,8 +252,8 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.ccache/vsbuild-${{ matrix.name }} - key: vsbuild-${{ matrix.name }}-ccache-${{ hashFiles('**/CMakeLists.txt') }} - restore-keys: vsbuild-${{ matrix.name }}-ccache- + key: vsbuild-${{ matrix.name }}-ccache-${{ env.BUILD_TYPE }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: vsbuild-${{ matrix.name }}-ccache-${{ env.BUILD_TYPE }}- - name: Install ccache if: matrix.generator == 'Ninja' run: choco install ccache -y @@ -251,12 +265,27 @@ jobs: run: | mkdir build cd build - call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + if not defined VSINSTALLDIR ( + set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" + if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" + for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSINSTALLDIR=%%i" + ) + if not defined VSINSTALLDIR ( + echo VSINSTALLDIR not set and vswhere did not find Visual Studio. + exit /b 1 + ) + call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON ${{ matrix.ccache_args }} -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. cmake --build . --config ${{ env.BUILD_TYPE }} --parallel + - name: ccache stats + if: matrix.generator == 'Ninja' + shell: cmd + run: | + ccache --show-stats + if %errorlevel% neq 0 echo ccache stats unavailable - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --no-tests=error --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 From 66de9fc020c4777ef0a7981675a804459fcf5f11 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 14:32:55 -0500 Subject: [PATCH 18/22] fix --- .github/workflows/cmake.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 842db8541b..87582e8b35 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -50,7 +50,7 @@ jobs: working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --no-tests=error --parallel 0 + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -111,7 +111,7 @@ jobs: run: ccache --show-stats || true - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --no-tests=error --parallel 0 + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -182,7 +182,7 @@ jobs: shell: msys2 {0} run: | cd build - ctest --output-on-failure --no-tests=error --parallel 0 + ctest --output-on-failure --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -285,7 +285,7 @@ jobs: if %errorlevel% neq 0 echo ccache stats unavailable - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --no-tests=error --parallel 0 + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --parallel 0 - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 From 1844596bc59ff00f6de305ed0d1ba58be113dbe5 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 20:17:25 -0500 Subject: [PATCH 19/22] fix vswhere --- .github/workflows/cmake.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 87582e8b35..3726f44098 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -263,11 +263,11 @@ jobs: CCACHE_DIR: ${{ github.workspace }}/.ccache/vsbuild-${{ matrix.name }} CCACHE_BASEDIR: ${{ github.workspace }} run: | + set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" + if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" mkdir build cd build if not defined VSINSTALLDIR ( - set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" - if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSINSTALLDIR=%%i" ) if not defined VSINSTALLDIR ( From ee5b5957306fd082fb9e1c2f474b71a200eb7a46 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 20:29:25 -0500 Subject: [PATCH 20/22] fix --- .github/workflows/cmake.yml | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 3726f44098..bce7bac3a3 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -231,7 +231,23 @@ jobs: with: submodules: recursive - name: Setup msbuild - uses: microsoft/setup-msbuild@v1 + uses: microsoft/setup-msbuild@v2 + - name: Setup MSVC environment + shell: cmd + run: | + set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" + if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" + for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSINSTALLDIR=%%i" + if not defined VSINSTALLDIR ( + echo vswhere did not find Visual Studio. + exit /b 1 + ) + call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" + echo PATH=%PATH%>>%GITHUB_ENV% + echo INCLUDE=%INCLUDE%>>%GITHUB_ENV% + echo LIB=%LIB%>>%GITHUB_ENV% + echo LIBPATH=%LIBPATH%>>%GITHUB_ENV% + echo VSINSTALLDIR=%VSINSTALLDIR%>>%GITHUB_ENV% - name: Cache vcpkg uses: actions/cache@v4 with: @@ -263,20 +279,8 @@ jobs: CCACHE_DIR: ${{ github.workspace }}/.ccache/vsbuild-${{ matrix.name }} CCACHE_BASEDIR: ${{ github.workspace }} run: | - set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" - if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" - mkdir build - cd build - if not defined VSINSTALLDIR ( - for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSINSTALLDIR=%%i" - ) - if not defined VSINSTALLDIR ( - echo VSINSTALLDIR not set and vswhere did not find Visual Studio. - exit /b 1 - ) - call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" - cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON ${{ matrix.ccache_args }} -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} .. - cmake --build . --config ${{ env.BUILD_TYPE }} --parallel + cmake -B build -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON ${{ matrix.ccache_args }} -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} + cmake --build build --config ${{ env.BUILD_TYPE }} --parallel - name: ccache stats if: matrix.generator == 'Ninja' shell: cmd From 4b344e43f20d6b1d002c21b8b1e341c246f8b833 Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 20:45:06 -0500 Subject: [PATCH 21/22] fix --- .github/workflows/cmake.yml | 40 ++++++++----------------------------- 1 file changed, 8 insertions(+), 32 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index bce7bac3a3..953c2fea4e 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -50,7 +50,7 @@ jobs: working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --parallel 0 + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -111,7 +111,7 @@ jobs: run: ccache --show-stats || true - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --parallel 0 + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -177,12 +177,11 @@ jobs: cmake --build build --config ${{ env.BUILD_TYPE }} --parallel ccache --show-stats || true echo "Finished build at $(date -u +'%Y-%m-%dT%H:%M:%SZ')" - - name: Test shell: msys2 {0} run: | cd build - ctest --output-on-failure --parallel 0 + ctest --output-on-failure --parallel - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 @@ -231,32 +230,7 @@ jobs: with: submodules: recursive - name: Setup msbuild - uses: microsoft/setup-msbuild@v2 - - name: Setup MSVC environment - shell: cmd - run: | - set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" - if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" - for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSINSTALLDIR=%%i" - if not defined VSINSTALLDIR ( - echo vswhere did not find Visual Studio. - exit /b 1 - ) - call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" - echo PATH=%PATH%>>%GITHUB_ENV% - echo INCLUDE=%INCLUDE%>>%GITHUB_ENV% - echo LIB=%LIB%>>%GITHUB_ENV% - echo LIBPATH=%LIBPATH%>>%GITHUB_ENV% - echo VSINSTALLDIR=%VSINSTALLDIR%>>%GITHUB_ENV% - - name: Cache vcpkg - uses: actions/cache@v4 - with: - path: | - ${{ env.VCPKG_INSTALLATION_ROOT }}\downloads - ${{ env.VCPKG_INSTALLATION_ROOT }}\buildtrees - ${{ env.VCPKG_INSTALLATION_ROOT }}\packages - key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }} - restore-keys: vcpkg-${{ runner.os }}- + uses: microsoft/setup-msbuild@v1 - name: Install vcpkg packages shell: cmd run: '"%VCPKG_INSTALLATION_ROOT%\vcpkg.exe" install --triplet x64-windows' @@ -279,7 +253,9 @@ jobs: CCACHE_DIR: ${{ github.workspace }}/.ccache/vsbuild-${{ matrix.name }} CCACHE_BASEDIR: ${{ github.workspace }} run: | - cmake -B build -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON ${{ matrix.ccache_args }} -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} + mkdir build + call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + cmake -S . -B build -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DDPPC_68K_DEBUGGER=ON -DDPPC_BUILD_PPC_TESTS=ON ${{ matrix.ccache_args }} -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ${{ matrix.cmake_args }} cmake --build build --config ${{ env.BUILD_TYPE }} --parallel - name: ccache stats if: matrix.generator == 'Ninja' @@ -289,7 +265,7 @@ jobs: if %errorlevel% neq 0 echo ccache stats unavailable - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure --parallel 0 + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure - name: Upload logs on failure if: failure() uses: actions/upload-artifact@v4 From aa46cf62b06bdf92310283b95212506918c9433e Mon Sep 17 00:00:00 2001 From: Tim Jarzombek Date: Sun, 8 Feb 2026 21:27:08 -0500 Subject: [PATCH 22/22] Remove workflow_dispatch from CMake workflow --- .github/workflows/cmake.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 953c2fea4e..8a1a7dea33 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -4,7 +4,6 @@ on: branches: [ master ] pull_request: branches: [ master ] - workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true