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 \ curl \ libvulkan-dev \ vulkan-validationlayers \ vulkan-tools \ vulkan-utility-libraries-dev \ libvulkan-memory-allocator-dev \ libvulkan-volk-dev \ glslang-tools \ libglfw3-dev \ libfmt-dev \ libcli11-dev \ libglm-dev \ libwayland-dev \ wayland-protocols \ libwayland-bin \ libxkbcommon-dev \ libpulse-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: Check dependencies run: | cmake --version ninja --version g++ --version echo "Vulkan:" vulkaninfo --summary || true 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: 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