From f0fff02d685107783ad32c5e2eb38d02375e56c5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 11 Jan 2026 21:04:02 +0000 Subject: [PATCH 01/11] Initial plan From 77c15113a0935b2f801f23f2dc08964b51886e22 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 11 Jan 2026 22:10:29 +0100 Subject: [PATCH 02/11] Add Windows CI workflow adapted from ubuntu-ci.yml Co-authored-by: chrxh <73127001+chrxh@users.noreply.github.com> --- .github/workflows/windows-ci.yml | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/windows-ci.yml diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml new file mode 100644 index 0000000000..8e544547ce --- /dev/null +++ b/.github/workflows/windows-ci.yml @@ -0,0 +1,63 @@ +name: CMake (Windows) + +on: + push: + branches: [ develop ] + pull_request: + branches: [ develop ] + + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MCP_AUTH_TOKEN: ${{ secrets.MCP_AUTH_TOKEN }} + +jobs: + build: + # 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 + runs-on: [self-hosted, Windows, CUDA] + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Unshallow vcpkg submodule + shell: pwsh + run: | + cd external/vcpkg + git fetch --unshallow 2>$null + if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } + cd ../.. + + - name: Bootstrap vcpkg + shell: pwsh + run: | + Push-Location external/vcpkg + .\bootstrap-vcpkg.bat -disableMetrics + Pop-Location + + - name: Configure CMake + shell: pwsh + run: > + cmake -S . -B build + -G Ninja + -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} + -DCMAKE_CUDA_COMPILER=nvcc + + - name: Build + shell: pwsh + run: cmake --build build -j32 + + - name: Run Tests + shell: pwsh + run: | + cd build + .\EngineInterfaceTests.exe + .\NetworkTests.exe + .\PersisterTests.exe + .\EngineTests.exe From 2e9cda5ebbeaccce2965f8fe84cc90b16da21362 Mon Sep 17 00:00:00 2001 From: Christian Heinemann Date: Sun, 11 Jan 2026 22:14:26 +0100 Subject: [PATCH 03/11] Label correction --- .github/workflows/windows-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 8e544547ce..f5b2ad4327 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -18,7 +18,7 @@ jobs: # 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 - runs-on: [self-hosted, Windows, CUDA] + runs-on: [self-hosted, Windows] steps: - uses: actions/checkout@v4 From b44819cc0e7f7f4237972304aed4dc3c61a71ad3 Mon Sep 17 00:00:00 2001 From: Christian Heinemann Date: Sun, 11 Jan 2026 22:16:45 +0100 Subject: [PATCH 04/11] Linux runner label corrected --- .github/workflows/ubuntu-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index b8143a47d8..d74fda9151 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -18,7 +18,7 @@ jobs: # 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 - runs-on: self-hosted + runs-on: [self-hosted, Linux] steps: - uses: actions/checkout@v4 From bf63a6cd7830e954bf25eac05e10edf2b97c3bc6 Mon Sep 17 00:00:00 2001 From: Christian Heinemann Date: Sun, 11 Jan 2026 22:30:19 +0100 Subject: [PATCH 05/11] Compile in windows without ninja --- .github/workflows/windows-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index f5b2ad4327..da231b717a 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -44,7 +44,6 @@ jobs: shell: pwsh run: > cmake -S . -B build - -G Ninja -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_CUDA_COMPILER=nvcc From 92175808bb5a982ec20ea6cb30a77a12355c58d8 Mon Sep 17 00:00:00 2001 From: Christian Heinemann Date: Sun, 11 Jan 2026 22:44:17 +0100 Subject: [PATCH 06/11] copilot setup steps adapted --- .github/workflows/copilot-setup-steps.yml | 42 ++++++++--------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 2dd4d5e3d4..85d65fc81a 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -20,7 +20,7 @@ env: jobs: # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. copilot-setup-steps: - runs-on: self-hosted + runs-on: [self-hosted, Windows] # Set the permissions to the lowest permissions possible needed for your steps. # Copilot will be given its own token for its operations. @@ -36,42 +36,28 @@ jobs: submodules: recursive - name: Unshallow vcpkg submodule + shell: pwsh run: | cd external/vcpkg - git fetch --unshallow || true + git fetch --unshallow 2>$null + if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } cd ../.. - - name: Install Packages - run: | - sudo apt-get update -qq - sudo apt-get install -y --no-install-recommends libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libgl1-mesa-dev libglu-dev - - - name: Install CUDA (via NVIDIA's repo) - run: | - sudo apt-get update - sudo apt-get install -y gnupg software-properties-common wget - wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb - sudo dpkg -i cuda-keyring_1.1-1_all.deb - sudo apt-get update - sudo apt-get install -y cuda-compiler-13-0 - - - name: Add CUDA to PATH - run: | - echo "/usr/local/cuda/bin" >> $GITHUB_PATH - echo "LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> $GITHUB_ENV - - name: Bootstrap vcpkg + shell: pwsh run: | - pushd external/vcpkg - ./bootstrap-vcpkg.sh -disableMetrics - popd + Push-Location external/vcpkg + .\bootstrap-vcpkg.bat -disableMetrics + Pop-Location - - name: Configure CMake (mit vcpkg Manifest-Mode) + - name: Configure CMake + shell: pwsh run: > cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} + -DCMAKE_CUDA_COMPILER=nvcc - name: Build - run: cmake --build build -j32 + shell: pwsh + run: cmake --build build -j32 \ No newline at end of file From 4a43dc1b365f1adb17ad87a6aea024f52ef016c7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 11 Jan 2026 22:50:31 +0100 Subject: [PATCH 07/11] Fix PowerShell exit code in Unshallow vcpkg step Co-authored-by: chrxh <73127001+chrxh@users.noreply.github.com> --- .github/workflows/windows-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index da231b717a..519df4237e 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -29,9 +29,8 @@ jobs: shell: pwsh run: | cd external/vcpkg - git fetch --unshallow 2>$null - if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } - cd ../.. + git fetch --unshallow 2>$null; if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } + exit 0 - name: Bootstrap vcpkg shell: pwsh From ad91d127298a3822e652b7eda52b0db920ac2312 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 11 Jan 2026 22:58:23 +0100 Subject: [PATCH 08/11] Fix CMake configure command line parsing in PowerShell Co-authored-by: chrxh <73127001+chrxh@users.noreply.github.com> --- .github/workflows/windows-ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 519df4237e..49775ed6ef 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -41,11 +41,11 @@ jobs: - name: Configure CMake shell: pwsh - run: > - cmake -S . -B build - -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} - -DCMAKE_CUDA_COMPILER=nvcc + run: | + cmake -S . -B build ` + -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake ` + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ` + -DCMAKE_CUDA_COMPILER=nvcc - name: Build shell: pwsh From 15218b8286031d09671a20b906b981c06c123977 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 11 Jan 2026 23:06:43 +0100 Subject: [PATCH 09/11] Put CMake configure command on single line to avoid PowerShell parsing issues Co-authored-by: chrxh <73127001+chrxh@users.noreply.github.com> --- .github/workflows/windows-ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 49775ed6ef..5fdef9eadf 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -41,11 +41,7 @@ jobs: - name: Configure CMake shell: pwsh - run: | - cmake -S . -B build ` - -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake ` - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ` - -DCMAKE_CUDA_COMPILER=nvcc + run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_CUDA_COMPILER=nvcc - name: Build shell: pwsh From 47923708196b152b1dc9b55ca03dacdc75bdfa7d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 11 Jan 2026 23:14:43 +0100 Subject: [PATCH 10/11] Use quoted Windows-style path for vcpkg toolchain file Co-authored-by: chrxh <73127001+chrxh@users.noreply.github.com> --- .github/workflows/windows-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 5fdef9eadf..5cfc94c284 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -41,7 +41,7 @@ jobs: - name: Configure CMake shell: pwsh - run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_CUDA_COMPILER=nvcc + run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="external\vcpkg\scripts\buildsystems\vcpkg.cmake" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_CUDA_COMPILER=nvcc - name: Build shell: pwsh From 6024a35f5490cb4c38f6b870ffaa42f1d19435fb Mon Sep 17 00:00:00 2001 From: Christian Heinemann Date: Sun, 11 Jan 2026 23:28:26 +0100 Subject: [PATCH 11/11] Run no tests in Windows CI --- .github/workflows/copilot-setup-steps.yml | 13 ++++--------- .github/workflows/windows-ci.yml | 9 --------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 85d65fc81a..4b4e62408f 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -39,9 +39,8 @@ jobs: shell: pwsh run: | cd external/vcpkg - git fetch --unshallow 2>$null - if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } - cd ../.. + git fetch --unshallow 2>$null; if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } + exit 0 - name: Bootstrap vcpkg shell: pwsh @@ -52,12 +51,8 @@ jobs: - name: Configure CMake shell: pwsh - run: > - cmake -S . -B build - -DCMAKE_TOOLCHAIN_FILE=external/vcpkg/scripts/buildsystems/vcpkg.cmake - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} - -DCMAKE_CUDA_COMPILER=nvcc + run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="external\vcpkg\scripts\buildsystems\vcpkg.cmake" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_CUDA_COMPILER=nvcc - name: Build shell: pwsh - run: cmake --build build -j32 \ No newline at end of file + run: cmake --build build -j32 diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 5cfc94c284..aafa498e6f 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -46,12 +46,3 @@ jobs: - name: Build shell: pwsh run: cmake --build build -j32 - - - name: Run Tests - shell: pwsh - run: | - cd build - .\EngineInterfaceTests.exe - .\NetworkTests.exe - .\PersisterTests.exe - .\EngineTests.exe