name: Build VulkanEngine on: push: branches: - vkguide pull_request: workflow_dispatch: schedule: - cron: "@weekly" jobs: build: runs-on: ubuntu-latest steps: - name: Update apt run: sudo apt update - name: Install dependencies run: | sudo apt install -y \ cmake \ ninja-build \ pkg-config \ g++ \ libvulkan1 \ glslang-tools \ libglfw3-dev \ libcli11-dev \ libglm-dev \ libpulse-dev \ libwayland-dev \ wayland-protocols \ libxkbcommon-dev - name: Install Slang run: | SLANG_VERSION="2026.19" curl -fL \ "https://github.com/shader-slang/slang/releases/download/v${SLANG_VERSION}/slang-${SLANG_VERSION}-linux-x86_64.tar.gz" \ -o /tmp/slang.tar.gz sudo tar \ -xzf /tmp/slang.tar.gz \ -C /usr/local echo "Slang installed:" ls -la /usr/local/bin/slangc - name: Install Vulkan SDK uses: humbletim/setup-vulkan-sdk@v1.2.1 with: vulkan-query-version: 1.4.335.0 vulkan-components: Vulkan-Headers, Vulkan-Loader vulkan-use-cache: true - name: Check dependencies run: | cmake --version ninja --version g++ --version echo "glslang:" glslangValidator --version echo "Slang:" slangc -v - name: Checkout uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - name: Configure run: | cmake \ --preset release - name: Debug Vulkan headers run: | echo "=== CMake FetchContent ===" find bin/release/_deps/vulkan-headers-src \ \( -name 'vulkan_core.h' -o -name 'vk_enum_string_helper.h' \) \ -print echo echo "=== System Vulkan ===" find /usr/include/vulkan -maxdepth 1 -type f \ -name '*.h' -print | head -20 echo echo "=== Header versions ===" grep -R \ -E 'VK_HEADER_VERSION(_COMPLETE)?' \ bin/release/_deps 2>/dev/null | head -20 || true grep -E 'VK_HEADER_VERSION(_COMPLETE)?' \ /usr/include/vulkan/vulkan_core.h - name: Check Vulkan versions run: | echo "System:" grep -E 'VK_HEADER_VERSION|VK_HEADER_VERSION_COMPLETE' \ /usr/include/vulkan/vulkan_core.h echo "FetchContent:" grep -E 'VK_HEADER_VERSION|VK_HEADER_VERSION_COMPLETE' \ bin/release/_deps/vulkan-headers-src/include/vulkan/vulkan_core.h echo "enum helper:" grep -E 'VK_HEADER_VERSION' \ /usr/include/vulkan/vk_enum_string_helper.h || true - name: Build run: | cmake \ --build \ --preset release \ --parallel - name: Upload des artefacts if: success() uses: actions/upload-artifact@v3 with: name: vulkan-engine path: | ./engine-bundle if-no-files-found: warn archive: false - name: Notify routine if: always() run: | curl \ -H "Title: [Routine] VulkanEngine build" \ -d "Build finished (status: ${{ job.status }})" \ https://ntfy.alexdelcamp.fr/FlakeBuild