lsfg-vk/.github/workflows/ci.yml

71 lines
2.2 KiB
YAML

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