-
Notifications
You must be signed in to change notification settings - Fork 0
114 lines (100 loc) · 3.21 KB
/
linux.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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: [clang15, clang17]
build_type: [Release]
include:
#- compiler: gcc # crashes after everything is done. i don't know why, i don't care. i'm sorry if this is biting you (knowing from experience, it'll bite me at some point XD).
#CC: '/usr/bin/gcc'
#CXX: '/usr/bin/g++'
#asan: 'OFF'
- compiler: clang15
CC: '/usr/bin/clang-15'
CXX: '/usr/bin/clang++-15'
asan: 'ON'
- compiler: clang17
CC: '/usr/bin/clang-17'
CXX: '/usr/bin/clang++-17'
asan: 'ON'
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
-DALP_ENABLE_ADDRESS_SANITIZER=${{ matrix.asan }}
-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
if: matrix.asan == 'ON'
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
if: matrix.asan == 'ON'
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
- name: Unittests on Linux
if: matrix.asan == 'OFF'
env:
QT_QPA_PLATFORM: offscreen
DISPLAY: :1
run: |
Xvfb :1 -screen 0 1024x768x16 &
sleep 5
./build/unittests/test_qml_catch2_console