name: (CI) lsfg-vk on: push: branches: ["release", "develop"] permissions: contents: write jobs: build: runs-on: ubuntu-22.04 steps: - name: Checkout repository uses: actions/checkout@v4 # Install build dependencies & Update Vulkan headers - name: Install build dependencies uses: awalsh128/cache-apt-pkgs-action@latest with: packages: git curl llvm clang clang-tools clang-tidy cmake ninja-build pkg-config libvulkan-dev mesa-common-dev qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools qt6-declarative-dev qt6-declarative-dev-tools version: 2.0 - name: Update Vulkan headers run: | git clone -b vulkan-sdk-1.4.328 https://github.com/KhronosGroup/Vulkan-Headers /tmp/vkh sudo rm -rf /usr/include/{vulkan,vk_video} sudo mv /tmp/vkh/include/{vulkan,vk_video} /usr/include/ rm -rf /tmp/vkh # Configure and build lsfg-vk - name: Configure lsfg-vk run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=./target \ -DCMAKE_CXX_COMPILER=clang++ \ -DLSFGVK_BUILD_VK_LAYER=ON \ -DLSFGVK_BUILD_UI=ON \ -DLSFGVK_BUILD_CLI=ON \ -DLSFGVK_INSTALL_XDG_FILES=ON \ -DLSFGVK_LAYER_LIBRARY_PATH="../../../lib/liblsfg-vk-layer.so" - name: Build with Ninja run: | ninja -C build - name: Install with CMake run: | cmake --install build # Compress lsfg-vk into an artifact - name: Upload lsfg-vk artifact uses: actions/upload-artifact@v4 with: name: lsfg-vk path: | target/* - name: Compress lsfg-vk for release run: | tar -cJf "lsfg-vk-2.0.0-dev${{ github.run_number }}-linux.tar.xz" -C target . - name: Update pre-release version uses: marvinpinto/action-automatic-releases@latest with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: v2.0.0-dev title: "lsfg-vk 2.0.0-dev${{ github.run_number }}" files: | lsfg-vk-2.0.0-dev${{ github.run_number }}-linux.tar.xz