Run CI tests with ASan + UBSan #55
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: build | |
on: | |
push: | |
branches: [ master, dev ] | |
tags: [ 'v*' ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build-ubuntu-22-04: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies (apt) | |
run: sudo apt install python3-pip ninja-build libsndfile1-dev libliquid-dev nlohmann-json3-dev | |
- name: Install meson (pip3) | |
run: pip3 install --user meson | |
- name: meson setup | |
run: meson setup -Dwerror=true build | |
- name: compile | |
run: cd build && meson compile | |
build-ubuntu-20-04: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies (apt) | |
run: sudo apt install python3-pip ninja-build libsndfile1-dev libliquid-dev nlohmann-json3-dev | |
- name: Install meson (pip3) | |
run: pip3 install --user meson | |
- name: meson setup | |
run: meson setup -Dwerror=true build | |
- name: compile | |
run: cd build && meson compile | |
build-ubuntu-deb-package: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Debian packaging tools | |
run: sudo apt install build-essential devscripts debhelper equivs | |
- name: Install Build-Depends | |
run: sudo mk-build-deps --install --tool 'apt-get --yes' | |
- name: Build .deb | |
run: debuild -us -uc | |
- name: Install .deb | |
run: sudo dpkg -i ../redsea_*.deb | |
build-debian-oldoldstable: | |
runs-on: ubuntu-latest | |
container: debian:buster | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies (apt-get) | |
run: apt-get update && apt-get -y install python3-pip ninja-build build-essential libsndfile1-dev libliquid-dev nlohmann-json3-dev | |
- name: Install meson (pip3) | |
run: pip3 install --user meson | |
- name: meson setup | |
run: export PATH=$PATH:$HOME/.local/bin && meson setup -Dwerror=true build | |
- name: compile | |
run: export PATH=$PATH:$HOME/.local/bin && cd build && meson compile | |
build-test-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies (brew) | |
run: brew install meson libsndfile liquid-dsp nlohmann-json catch2 | |
- name: meson setup | |
run: meson setup -Dwerror=true -Db_sanitize=address -Db_sanitize=undefined build | |
- name: compile | |
run: cd build && meson compile | |
- name: test | |
run: cd build && meson test | |
build-windows-msys2-mingw: | |
runs-on: windows-latest | |
steps: | |
- uses: msys2/setup-msys2@v2 | |
with: | |
update: true | |
install: >- | |
autoconf | |
automake | |
git | |
make | |
mingw-w64-x86_64-gcc | |
mingw-w64-x86_64-libiconv | |
mingw-w64-x86_64-libsndfile | |
mingw-w64-x86_64-meson | |
mingw-w64-x86_64-nlohmann-json | |
mingw-w64-x86_64-python3 | |
# Disable glibc specific checks and headers | |
- name: Patch & build liquid-dsp | |
shell: msys2 {0} | |
run: | | |
git clone https://github.com/jgaeddert/liquid-dsp.git && cd liquid-dsp | |
perl -i -p -e 's/(AC_CHECK_LIB\(\[c\].+| sys\/resource.h)//g' configure.ac | |
./bootstrap.sh && ./configure --prefix=/mingw64 && make | |
make install | |
- uses: actions/checkout@v4 | |
- name: Build redsea.exe | |
shell: msys2 {0} | |
run: | | |
meson setup -Dwerror=true build && cd build && meson compile | |
- name: Package into distrib | |
shell: msys2 {0} | |
run: >- | |
mkdir -p distrib && cp build/redsea.exe distrib/ && | |
ldd build/redsea.exe | | |
grep -iv windows | | |
grep -iv system32 | | |
grep -v :$ | | |
cut -f2 -d\> | | |
cut -f1 -d\( | | |
awk '{$1=$1};1' | | |
xargs -I{} cp {} distrib/ | |
build-windows-cygwin: | |
runs-on: windows-latest | |
steps: | |
- run: git config --global core.autocrlf input | |
- uses: actions/checkout@v4 | |
- uses: cygwin/cygwin-install-action@v4 | |
with: | |
packages: >- | |
autoconf | |
automake | |
bzip2 | |
gcc-core | |
gcc-g++ | |
git | |
libiconv-devel | |
libsndfile-devel | |
make | |
meson | |
patch | |
perl | |
tar | |
xz | |
- name: Build liquid-dsp | |
shell: C:\cygwin\bin\bash.exe -eo pipefail '{0}' | |
run: >- | |
git clone https://github.com/jgaeddert/liquid-dsp.git && | |
cd liquid-dsp && | |
./bootstrap.sh && | |
./configure --prefix=/usr && | |
make && make install | |
# Cygwin does not allow underscore variables that start with an uppercase when | |
# compiling with gcc | |
- name: Patch liquid.h | |
shell: C:\cygwin\bin\bash.exe -eo pipefail '{0}' | |
run: perl -i -p -e 's/(?<=\s)(_[A-Z])(?=[,\)])/\L\1__/g' /usr/include/liquid/liquid.h | |
- name: Build redsea | |
shell: C:\cygwin\bin\bash.exe -eo pipefail '{0}' | |
run: meson setup -Dwerror=true build && cd build && meson compile |