no need to use ninja on windows + set build type (env was likely empt… #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linux tests | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
concurrency: | |
group: "linux" | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [gcc, clang15, clang17] | |
build_type: [Release] | |
include: | |
- compiler: gcc | |
CC: '/usr/bin/gcc' | |
CXX: '/usr/bin/g++' | |
- compiler: clang15 | |
CC: '/usr/bin/clang-15' | |
CXX: '/usr/bin/clang++-15' | |
- compiler: clang17 | |
CC: '/usr/bin/clang-17' | |
CXX: '/usr/bin/clang++-17' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Install Clang 17 | |
if: matrix.compiler == 'clang17' | |
run: | | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x ./llvm.sh | |
sudo ./llvm.sh 17 | |
- name: Install Linux Dependencies | |
run: | | |
sudo apt-get install -y build-essential ninja-build lld clang-15 libgl1-mesa-dev libxcb-cursor-dev xorg-dev libxrandr-dev libxcursor-dev libudev-dev libopenal-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev libdrm-dev libgbm-dev xvfb libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
aqtversion: '==3.1.*' | |
version: '6.6.1' | |
host: 'linux' | |
target: 'desktop' | |
arch: 'gcc_64' | |
dir: '${{github.workspace}}/qt' | |
install-deps: 'true' | |
modules: 'qtcharts qtpositioning' | |
- name: Configure | |
env: | |
CC: ${{ matrix.CC }} | |
CXX: ${{ matrix.CXX }} | |
CMAKE_PREFIX_PATH: ${{env.Qt6_Dir}}/lib/cmake | |
run: > | |
cmake -G Ninja | |
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
-DALP_ENABLE_ADDRESS_SANITIZER=ON | |
-DCMAKE_BUILD_TYPE=Debug | |
-B ./build | |
- name: Build | |
env: | |
CC: ${{ matrix.CC }} | |
CXX: ${{ matrix.CXX }} | |
run: | | |
cmake --build ./build | |
- name: Don't close loaded libraries for better sanitizer output | |
env: | |
CC: ${{ matrix.CC }} | |
CXX: ${{ matrix.CXX }} | |
run: | | |
echo "#include <stdio.h>" >> dlclose.c | |
echo "int dlclose(void*) { return 0; }" >> dlclose.c | |
$CC --shared dlclose.c -o libdlclose.so | |
- name: Unittests on Linux | |
env: | |
QT_QPA_PLATFORM: offscreen | |
DISPLAY: :1 | |
LD_PRELOAD: ./libdlclose.so | |
LSAN_OPTIONS: suppressions=./sanitizer_supressions/linux_leak.supp | |
ASAN_OPTIONS: verify_asan_link_order=0 | |
run: | | |
Xvfb :1 -screen 0 1024x768x16 & | |
sleep 5 | |
./build/unittests/test_qml_catch2_console |