Skip to content

Commit

Permalink
switch to alpine renderer ci setup for linux and windows
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-ce committed Jan 16, 2024
1 parent 5cea304 commit f26aa8d
Show file tree
Hide file tree
Showing 4 changed files with 175 additions and 84 deletions.
84 changes: 0 additions & 84 deletions .github/workflows/cmake-multi-platform.yml

This file was deleted.

99 changes: 99 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
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
72 changes: 72 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Windows Tests

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

concurrency:
group: "windows"
cancel-in-progress: true

jobs:
build:
runs-on: windows-latest
defaults:
run:
shell: 'powershell'

steps:
- uses: actions/checkout@v3
with:
submodules: 'true'

- name: Install ninja-build tool (must be after Qt due PATH changes)
uses: turtlesec-no/get-ninja@main

- name: Make sure MSVC is found when Ninja generator is in use
uses: ilammy/msvc-dev-cmd@v1

- name: Install 7zip
run: choco install 7zip.install

- name: Install Mesa
shell: cmd
run: |
curl.exe -L --output mesa.7z --url https://github.com/pal1000/mesa-dist-win/releases/download/20.3.2/mesa3d-20.3.2-release-msvc.7z
"C:\Program Files\7-Zip\7z.exe" x mesa.7z
mklink opengl32.dll "x64\opengl32.dll"
mklink libglapi.dll "x64\libglapi.dll"
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
aqtversion: '==3.1.*'
version: '6.6.1'
host: windows
target: 'desktop'
arch: 'win64_msvc2019_64'
dir: '${{github.workspace}}/qt'
install-deps: 'true'
modules: 'qtcharts qtpositioning'

- name: Configure
env:
CMAKE_PREFIX_PATH: ${{env.Qt6_Dir}}/lib/cmake
run: >
cmake -G Ninja
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-DALP_ENABLE_POSITIONING=false
-DALP_ENABLE_ASSERTS=ON
-B ./build
- name: Build
run: cmake --build ./build --config Debug

- name: Unittests on Windows
env:
MESA_GL_VERSION_OVERRIDE: 3.3
run: |
./build/unittests/Release/test_qml_catch2_console.exe
4 changes: 4 additions & 0 deletions sanitizer_supressions/linux_leak.supp
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
leak:dbus
leak:fontconfig
leak:icui18n
leak:gallium

0 comments on commit f26aa8d

Please sign in to comment.