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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
---
name: Build on various Operating Systems
on:
push:
branches: [devel, master]
pull_request:
branches: [devel, master]
env:
CARLA_BRIDGE_DUMMY: 1
CARLA_BRIDGE_TESTING: native
# FIXME some system library is causing memory leaks, switch to --leak-check=full when fixed
PLUGIN_METADATA: .build/target/lsp-plugin-fw/plugins.json
VALGRIND_ARGS: --error-exitcode=255 --leak-check=no --track-origins=yes --suppressions=.github/workflows/valgrind.supp
VALGRIND_DEBUG_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[community-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 alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 lv2lint php valgrind
- uses: actions/checkout@v3
- name: Configure project
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
- name: Lint LV2 plugins
run: |
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }} ); do \
lv2lint -Mpack "${_plugin}"; \
done
- name: Validate LV2 syntax
run: lv2_validate /usr/lib/lv2/lsp-*.lv2/*.ttl
- name: LADSPA runtime checks
run: |
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
done
- name: LV2 runtime checks
run: |
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
done
- name: VST2 runtime checks
run: |
for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /lsp-plugins-); do \
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
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[community-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 alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 php valgrind
- uses: actions/checkout@v3
- name: Configure project
run: make config DEBUG=1 VERBOSE=1 FEATURES='jack ladspa lv2 vst2' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
- name: LADSPA runtime checks
run: |
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
done
- name: LV2 runtime checks
run: |
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
done
- name: VST2 runtime checks
run: |
for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /lsp-plugins-); do \
valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
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 gcc gcc-c++ git make php valgrind libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
- uses: actions/checkout@v3
- name: Configure project
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
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 gcc gcc-c++ clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
- uses: actions/checkout@v3
- name: Configure project
run: make config CC=clang CXX=clang++ VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
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 gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev lv2-dev ladspa-sdk
- uses: actions/checkout@v3
- name: Configure project
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
|