Skip to content

no need to use ninja on windows + set build type (env was likely empt… #6

no need to use ninja on windows + set build type (env was likely empt…

no need to use ninja on windows + set build type (env was likely empt… #6

Workflow file for this run

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