feat: make graphics pipeline registry return pipeline abstraction ins… #164
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: macos-latest | |
| configure_preset: macos-arm64-debug | |
| - os: macos-latest | |
| configure_preset: macos-x64-debug | |
| - os: ubuntu-latest | |
| configure_preset: linux-x64-gcc-debug | |
| - os: ubuntu-latest | |
| configure_preset: linux-x64-clang-debug | |
| do_format: true | |
| do_tidy: true | |
| - os: windows-latest | |
| configure_preset: windows-x64-msvc-debug | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies (Ubuntu) | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| ninja-build \ | |
| cmake \ | |
| g++ \ | |
| clang \ | |
| libvulkan1 \ | |
| mesa-vulkan-drivers \ | |
| vulkan-tools \ | |
| glslang-tools \ | |
| - name: Install dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: | | |
| brew update | |
| command -v ninja >/dev/null 2>&1 || brew install ninja | |
| command -v cmake >/dev/null 2>&1 || brew install cmake | |
| command -v glslangValidator >/dev/null 2>&1 || brew install glslang | |
| - name: Set up MSVC dev cmd (Windows) | |
| if: runner.os == 'Windows' | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install dependencies (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| if (-not (Get-Command cmake -ErrorAction SilentlyContinue)) { | |
| choco install -y cmake | |
| } | |
| if (-not (Get-Command ninja -ErrorAction SilentlyContinue)) { | |
| choco install -y ninja | |
| } | |
| if (-not (Get-Command glslangValidator -ErrorAction SilentlyContinue)) { | |
| choco install -y vulkan-sdk | |
| $vulkanBin = Get-ChildItem "C:/VulkanSDK" -Directory -ErrorAction SilentlyContinue | | |
| Sort-Object Name -Descending | | |
| Select-Object -First 1 | | |
| ForEach-Object { Join-Path $_.FullName "Bin" } | |
| if ($vulkanBin -and (Test-Path $vulkanBin)) { | |
| Add-Content -Path $env:GITHUB_PATH -Value $vulkanBin | |
| } | |
| } | |
| - name: Bootstrap vcpkg (macOS/Linux) | |
| if: runner.os != 'Windows' | |
| run: make deps | |
| - name: Bootstrap vcpkg (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| git submodule update --init --recursive | |
| if (!(Test-Path "vcpkg\vcpkg.exe")) { cd vcpkg; .\bootstrap-vcpkg.bat; cd .. } | |
| - name: Configure | |
| run: cmake --preset ${{ matrix.configure_preset }} -DQUARK_HEADLESS=ON -DVCPKG_MANIFEST_FEATURES=headless | |
| - name: Build | |
| run: cmake --build --preset ${{ matrix.configure_preset }} |