Skip to content

Switch to ubuntu 24.04 #907

Switch to ubuntu 24.04

Switch to ubuntu 24.04 #907

Workflow file for this run

name: Build-Linux
on:
push:
branches:
- master
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
compiler:
- { compiler: GNU, CC: gcc, CXX: g++ }
- { compiler: LLVM, CC: clang-16, CXX: clang++-16 }
build: [Release]
shared: [TRUE, FALSE]
os: [ubuntu-24.04]
steps:
- uses: actions/checkout@v4
with:
submodules: true
lfs: true
- name: Install system dependencies
run: |
sudo apt-get update && \
sudo apt-get install \
ninja-build \
python3-cairosvg \
python3-defusedxml \
python3-pil \
qt6-base-dev \
qt6-declarative-dev \
qt6-declarative-dev-tools \
qt6-declarative-private-dev \
qt6-multimedia-dev \
qt6-quick3d-dev \
qt6-quick3d-dev-tools \
qt6-l10n-tools \
qml6-module-qtqml-workerscript \
qml6-module-qtquick-window \
libqt6shadertools6-dev \
libqt6svg6-dev \
libqt6quick3druntimerender6 \
libavformat-dev \
libboost-dev \
libopencv-dev \
libopenblas-dev \
libdlib-dev \
libgmock-dev \
libgl1-mesa-dev \
libglvnd-dev \
libwebp-dev
- name: Install magic enum
run: |
sudo wget https://raw.githubusercontent.com/Neargye/magic_enum/87190b8/include/magic_enum.hpp -O /usr/include/magic_enum.hpp
- name: Install CsLibGuarded
run: |
git clone -b libguarded-1.4.1 https://github.com/copperspice/cs_libguarded.git
cd cs_libguarded
mkdir build
cd build
cmake ..
cmake --build . --target all
sudo cmake --build . --target install
- name: Install Exiv2
run: |
sudo apt-get install libinih-dev
git clone -b v0.28.2 https://github.com/Exiv2/exiv2.git
cd exiv2
mkdir build
cd build
cmake .. -DEXIV2_ENABLE_VIDEO=ON -DEXIV2_BUILD_EXIV2_COMMAND=OFF -DEXIV2_BUILD_UNIT_TESTS=OFF -DEXIV2_BUILD_SAMPLES=OFF
cmake --build . --target all
sudo cmake --build . --target install
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}-${{ matrix.compiler.compiler }}
- name: Setup environment
run: echo "ENABLE_SANITIZERS=$( test ${{ matrix.build }} == "Release" && echo "ON" || echo "OFF" )" >> $GITHUB_ENV
- name: Build
uses: ashutoshvarma/action-cmake-build@master
with:
build-dir: ${{ runner.workspace }}/build
build-type: ${{ matrix.build }}
cc: ${{ matrix.compiler.CC }}
cxx: ${{ matrix.compiler.CXX }}
configure-options:
-DBUILD_SHARED_LIBS=${{ matrix.shared }}
-DLUPDATE=/usr/lib/qt6/bin/lupdate
-DLRELEASE:FILEPATH=/usr/lib/qt6/bin/lrelease
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DENABLE_SANITIZERS_FOR_TESTS=${{ env.ENABLE_SANITIZERS }}
-Wdev -Werror=dev
run-test: true
ctest-options:
--output-on-failure
env:
TSAN_OPTIONS=suppressions: ${{ runner.workspace }}/photobroom/sanitizer-thread-suppressions.txt