Skip to content

Daily Build

Daily Build #245

Workflow file for this run

name: Daily Build
on:
pull_request:
paths:
- '.github/workflows/build-daily.yml'
schedule:
- cron: '0 0 * * *'
jobs:
Build:
name: ${{ matrix.os }} - ${{ matrix.configuration }} - Vulkan ${{ matrix.vulkan }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
configuration: [Debug, RelWithDebInfo]
os: [windows-2025, windows-2022, ubuntu-24.04, macos-15, macos-14, macos-13]
vulkan: [1.4.313.0, 1.3.296.0]
steps:
- name: Preinstall dependencies
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo apt-get install libglm-dev cmake libxcb-dri3-0 libxcb-present0 \
libpciaccess0 libpng-dev libxcb-keysyms1-dev libxcb-dri3-dev \
libx11-dev libwayland-dev libxrandr-dev libxcb-randr0-dev \
libxcb-ewmh-dev git python-is-python3 bison libx11-xcb-dev \
libxcursor-dev libxi-dev libxinerama-dev libxkbcommon-dev \
libxext-dev liblz4-dev libzstd-dev ocaml-core ninja-build \
pkg-config libxml2-dev wayland-protocols python3-jsonschema \
clang-format qtbase5-dev qt6-base-dev
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 20
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 10
sudo update-alternatives --set cc /usr/bin/clang
sudo update-alternatives --set c++ /usr/bin/clang++
- uses: actions/checkout@v4
- uses: novelrt/setup-cpp@v2
id: setup-cpp
with:
compiler-id: ${{ (runner.os == 'Windows' && 'MSVC') || 'Clang' }}
- uses: novelrt/[email protected]
with:
version: ${{ matrix.vulkan }}
- name: Restore incremental build artefacts
id: cache
uses: actions/cache@v4
with:
path: build
key: ${{ matrix.os }}-${{ matrix.configuration }}-vk${{ matrix.vulkan }}-${{ steps.setup-cpp.outputs.compiler-id }}${{ steps.setup-cpp.outputs.compiler-version }}
- name: Generate build system
run: cmake -G Ninja -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.configuration }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON --install-prefix "$(pwd)/artefacts"
- name: Build NovelRT
run: cmake --build build --config ${{ matrix.configuration }} --parallel
- name: Install NovelRT
run: cmake --install build --config ${{ matrix.configuration }} --prefix artefacts
- name: Publish build artefacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-${{ matrix.configuration }}-vk${{ matrix.vulkan }}
path: artefacts