Add CI address sanitizer job #56
Workflow file for this run
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: CI workflow | |
"on": [push] | |
env: | |
CFLAGS: -fdiagnostics-color | |
jobs: | |
run-tests: | |
strategy: | |
matrix: | |
include: | |
- compiler: gcc | |
docs: true | |
sound: enabled | |
vapi: enabled | |
- compiler: gcc | |
docs: false | |
sound: disabled | |
vapi: disabled | |
- compiler: clang | |
docs: false | |
sound: enabled | |
vapi: disabled | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: install-deps | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install \ | |
bison \ | |
gstreamer1.0-plugins-bad \ | |
gstreamer1.0-plugins-good \ | |
gstreamer1.0-tools \ | |
gtk-doc-tools \ | |
libgirepository1.0-dev \ | |
libgstreamer1.0-dev \ | |
libgtk-3-dev \ | |
meson \ | |
texinfo \ | |
valac | |
- uses: actions/checkout@v2 | |
- name: configure | |
run: | | |
CC=${{ matrix.compiler }} meson _build -Dgtk_doc=${{ matrix.docs }} \ | |
-Dsound=${{ matrix.sound }} -Dvapi=${{ matrix.vapi }} | |
- name: build | |
run: ninja -C _build | |
- name: build-docs | |
if: matrix.docs | |
run: ninja -C _build chimara-doc | |
- name: test | |
run: xvfb-run -a meson test -C _build | |
- name: print-test-log | |
if: ${{ failure() }} | |
run: cat _build/meson-logs/testlog.txt | |
sanitizer: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: install-deps | |
# gtk downgrade is because there is no matching version in ddebs repo | |
# for the latest | |
run: | | |
sudo apt-get update | |
sudo apt-get -y --allow-downgrades install \ | |
gir1.2-gtk-3.0=3.24.33-1ubuntu1 \ | |
gstreamer1.0-plugins-bad \ | |
gstreamer1.0-plugins-good \ | |
gstreamer1.0-tools \ | |
libc6-dbg \ | |
libgstreamer1.0-dev \ | |
libgtk-3-0=3.24.33-1ubuntu1 \ | |
libgtk-3-dev=3.24.33-1ubuntu1 \ | |
libunwind-dev \ | |
libxml2-utils \ | |
meson \ | |
ubuntu-dbgsym-keyring | |
- name: install-debug-symbols | |
run: | | |
sudo tee -a "/etc/apt/sources.list.d/ddebs.list" <<EOF | |
deb http://ddebs.ubuntu.com jammy main restricted universe multiverse | |
deb http://ddebs.ubuntu.com jammy-updates main restricted universe multiverse | |
EOF | |
sudo apt-get update | |
sudo apt-get -y install libglib2.0-0-dbgsym libgtk-3-0-dbgsym | |
- uses: actions/checkout@v3 | |
- name: configure | |
run: | | |
meson _build \ | |
-Db_sanitize=address \ | |
-Dintrospection=false \ | |
-Dbocfel=false \ | |
-Dfrotz=false \ | |
-Dnitfol=false \ | |
-Dplayer=false | |
- name: build | |
run: ASAN_OPTIONS=detect_leaks=0 ninja -C _build | |
- name: test | |
run: | | |
G_DEBUG=gc-friendly \ | |
G_SLICE=always-malloc \ | |
ASAN_OPTIONS=fast_unwind_on_malloc=0 \ | |
xvfb-run -a meson test -C _build | |
- name: print-test-log | |
if: ${{ failure() }} | |
run: cat _build/meson-logs/testlog.txt |