Use push descriptor for one-time, small descriptors (up to 32) commands. #143
Workflow file for this run
This file contains 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: Build | |
env: | |
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" | |
on: | |
push: | |
paths: | |
- '**' | |
- '!README.md' | |
- '!LICENSE.txt' | |
- '!docs/**' | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-24.04] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Vulkan SDK | |
uses: humbletim/setup-vulkan-sdk@v1.2.0 | |
with: | |
vulkan-query-version: 1.3.296.0 | |
vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang, SPIRV-Tools | |
vulkan-use-cache: true | |
- name: Install build dependencies (macOS) | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: brew install llvm ninja autoconf automake libtool nasm | |
- name: Install build dependencies (ubuntu-24.04) | |
if: ${{ matrix.os == 'ubuntu-24.04' }} | |
run: sudo apt-get install ninja-build libc++-dev libc++abi-dev xorg-dev libtool libltdl-dev | |
- name: Setup vcpkg (macOS) | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
git clone https://github.com/microsoft/vcpkg.git --depth 1 | |
cd vcpkg && ./bootstrap-vcpkg.sh | |
echo "VCPKG_ROOT=${{ github.workspace }}/vcpkg" >> $GITHUB_ENV | |
- name: Export GitHub Actions cache environment variables | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | |
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | |
- name: Enable Developer Command Prompt (Windows) | |
if: ${{ matrix.os == 'windows-latest' }} | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Workaround for CMake bug that cannot find __CMAKE::CXX23 target when using homebrew libc++ (macOS) | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: sed -i '' 's|libc++.modules.json|../../c++/libc++.modules.json|g' /opt/homebrew/opt/cmake/share/cmake/Modules/Compiler/Clang-CXX-CXXImportStd.cmake # https://gitlab.kitware.com/cmake/cmake/-/issues/25965#note_1523575 | |
- name: Configure | |
run: | | |
mv .github/workflows/scripts/* . | |
cmake --preset=${{ runner.os }} | |
- name: Build | |
run: cmake --build build --config release | |
- name: Upload Binary as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ runner.os }} | |
path: | | |
build/vk-gltf-viewer | |
build/vk-gltf-viewer.exe | |
build/*.dll |