Updated build scripts #130
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 various Operating Systems | |
on: | |
push: | |
branches: [devel, master] | |
pull_request: | |
branches: [devel, master] | |
env: | |
ARTIFACT: lsp-tk-lib | |
VALGRIND_ARGS: --error-exitcode=255 --leak-check=full --track-origins=yes --keep-debuginfo=yes --suppressions=.github/workflows/valgrind.supp | |
jobs: | |
arch_linux: | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux:latest | |
steps: | |
- name: Add debug repositories | |
run: | | |
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf | |
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist | |
- name: Install dependencies | |
run: pacman --noconfirm -Syu base-devel glibc-debug git valgrind libglvnd libsndfile libx11 libxrandr freetype2 cairo | |
- uses: actions/checkout@v3 | |
- name: Configure project | |
run: make config TEST=1 STRICT=1 | |
- name: Fetch project dependencies | |
run: make fetch | |
- name: Build project | |
run: make VERBOSE=1 | |
- name: Run unit tests | |
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 | |
- name: Run unit tests with memcheck | |
run: | | |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \ | |
echo "***** MEMCHECK $test *****"; \ | |
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \ | |
done | |
arch_linux_debug: | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux:latest | |
steps: | |
- name: Add debug repositories | |
run: | | |
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf | |
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist | |
- name: Install dependencies | |
run: pacman --noconfirm -Syu base-devel glibc-debug git valgrind libglvnd libsndfile libx11 libxrandr freetype2 cairo | |
- uses: actions/checkout@v3 | |
- name: Configure project | |
run: make config TEST=1 STRICT=1 DEBUG=1 | |
- name: Fetch project dependencies | |
run: make fetch | |
- name: Build project | |
run: make VERBOSE=1 | |
- name: Run unit tests | |
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 | |
- name: Run unit tests with memcheck | |
run: | | |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \ | |
echo "***** MEMCHECK $test *****"; \ | |
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \ | |
done | |
opensuse_leap: | |
runs-on: ubuntu-latest | |
container: | |
image: opensuse/leap:latest | |
steps: | |
- name: Install dependencies | |
run: zypper --non-interactive --no-gpg-checks in tar gzip git make valgrind gcc gcc-c++ libX11-devel libXrandr-devel libglvnd-devel Mesa-libGL-devel libsndfile-devel freetype2-devel cairo-devel | |
- uses: actions/checkout@v3 | |
- name: Configure project | |
run: make config TEST=1 STRICT=1 | |
- name: Fetch project dependencies | |
run: make fetch | |
- name: Build project | |
run: make VERBOSE=1 | |
- name: Run unit tests | |
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 | |
- name: Run unit tests with memcheck | |
run: | | |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \ | |
echo "***** MEMCHECK $test *****"; \ | |
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \ | |
done | |
opensuse_tumbleweed_clang: | |
runs-on: ubuntu-latest | |
container: | |
image: opensuse/tumbleweed:latest | |
steps: | |
- name: Install dependencies | |
run: zypper --non-interactive --no-gpg-checks in tar gzip git make valgrind gcc gcc-c++ libstdc++-devel clang libX11-devel libXrandr-devel libglvnd-devel Mesa-libGL-devel libsndfile-devel freetype2-devel cairo-devel | |
- uses: actions/checkout@v3 | |
- name: Configure project | |
run: make config TEST=1 STRICT=1 CC=clang CXX=clang++ | |
- name: Fetch project dependencies | |
run: make fetch | |
- name: Build project | |
run: make VERBOSE=1 | |
- name: Run unit tests | |
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 | |
- name: Run unit tests with memcheck | |
run: | | |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \ | |
echo "***** MEMCHECK $test *****"; \ | |
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \ | |
done | |
debian_stable: | |
runs-on: ubuntu-latest | |
container: | |
image: debian:stable | |
steps: | |
- name: Update repositories | |
run: apt-get update | |
- name: Install dependencies | |
run: apt-get -y install git make pkg-config valgrind gcc g++ libgl-dev libsndfile1-dev libx11-dev libxrandr-dev libfreetype6-dev libcairo2-dev | |
- uses: actions/checkout@v3 | |
- name: Configure project | |
run: make config TEST=1 STRICT=1 | |
- name: Fetch project dependencies | |
run: make fetch | |
- name: Build project | |
run: make VERBOSE=1 | |
- name: Run unit tests | |
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 | |
- name: Run unit tests with memcheck | |
run: | | |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \ | |
echo "***** MEMCHECK $test *****"; \ | |
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \ | |
done | |
windows_mingw64: | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Setup MSYS2 and install dependencies | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
release: false | |
update: false | |
install: >- | |
base-devel | |
git | |
mingw-w64-x86_64-gcc | |
- uses: actions/checkout@v3 | |
- name: Configure project | |
shell: msys2 {0} | |
run: make config TEST=1 STRICT=1 | |
- name: Fetch project dependencies | |
shell: msys2 {0} | |
run: make fetch | |
- name: Build project | |
shell: msys2 {0} | |
run: make VERBOSE=1 | |
- name: Run unit tests | |
shell: msys2 {0} | |
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test.exe utest --verbose --jobs 1 |