lsfg-vk/.github/workflows/build-ubuntu.yml
2025-07-18 20:46:01 +02:00

63 lines
1.9 KiB
YAML

name: Build lsfg-vk on Ubuntu
on:
push:
branches: ["develop"]
jobs:
build-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Prepare permissions for apt cache
run: |
sudo chmod a+rwx -R /var/cache/apt/archives
- name: Prepare cache for apt packages
uses: actions/cache@v4
with:
path: /var/cache/apt/archives
key: ubuntu-apt-cache
- name: Install build dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y \
build-essential \
clang clang-tools llvm \
git tar \
cmake ninja-build \
spirv-headers libvulkan-dev \
xorg-dev xutils-dev
- name: Checkout SPIR-V
uses: actions/checkout@v4
with:
repository: 'KhronosGroup/SPIRV-Headers'
ref: 'vulkan-sdk-1.4.313.0'
path: 'spirv-headers'
- name: Build SPIR-V headers
run: |
cmake -S spirv-headers -B spirv-headers/build
sudo cmake --build spirv-headers/build --target install
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Configure with CMake and Ninja
run: |
CC=clang CXX=clang++ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=./build-release
- name: Build with Ninja
run: |
ninja -C build
- name: Install with CMake
run: |
cmake --install build
- name: Upload lsfg-vk artifact
uses: actions/upload-artifact@v4
with:
name: lsfg-vk_ubuntu
path: |
build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json
build-release/lib/liblsfg-vk.so
- name: Prepare permissions for apt cache
run: |
sudo chmod a+rwx -R /var/cache/apt/archives