diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 2dd4d5e3d4..4b4e62408f 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,23 @@ jobs: submodules: recursive - name: Unshallow vcpkg submodule + shell: pwsh run: | cd external/vcpkg - git fetch --unshallow || true - cd ../.. + git fetch --unshallow 2>$null; if (-not $?) { Write-Host "Already unshallowed or fetch failed (continuing)" } + exit 0 - - 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) - 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 + - 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 - name: Build + shell: pwsh run: cmake --build build -j32 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 diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml new file mode 100644 index 0000000000..aafa498e6f --- /dev/null +++ b/.github/workflows/windows-ci.yml @@ -0,0 +1,48 @@ +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] + + 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)" } + exit 0 + + - 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 -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