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 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
|
---
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[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 alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr lv2lint php valgrind gstreamer gst-plugins-base
- uses: actions/checkout@v3
- name: Configure project
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
- name: System information
run: lscpu
- 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 /liblsp-plugins-); do \
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
done
arch_linux_asan:
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 alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr php valgrind gstreamer gst-plugins-base
- uses: actions/checkout@v3
- name: Configure project
run: make config STRICT=1 DEBUG=1 VERBOSE=1 ASAN=1 FEATURES='clap jack gst ladspa ui lv2 vst2 vst3' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
- name: System information
run: lscpu
- name: LADSPA runtime checks
run: |
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
export ASAN_OPTIONS=verify_asan_link_order=0; \
/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 \
export ASAN_OPTIONS=verify_asan_link_order=0; \
/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 /liblsp-plugins-); do \
export ASAN_OPTIONS=verify_asan_link_order=0; \
/usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
done
arch_linux_valgrind:
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 alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack2 jq libglvnd libsndfile libx11 libxrandr php valgrind gstreamer gst-plugins-base
- uses: actions/checkout@v3
- name: Configure project
run: make config STRICT=1 DEBUG=1 VERBOSE=1 FEATURES='clap jack gst ladspa lv2 ui vst2 vst3' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
- name: System information
run: lscpu
- 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 /liblsp-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++ glibc-locale git make php valgrind libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel gstreamer-devel gstreamer-plugins-base-devel
- uses: actions/checkout@v3
- name: Configure project
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 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++ glibc-locale glibc-gconv-modules-extra clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel Mesa-libGL-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel gstreamer-devel gstreamer-plugins-base-devel
- uses: actions/checkout@v3
- name: Configure project
run: make config CC=clang CXX=clang++ STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 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 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
- uses: actions/checkout@v3
- name: Configure project
run: make config STRICT=1 VERBOSE=1 FEATURES='clap doc jack gst ladspa lv2 ui vst2 vst3 xdg' PREFIX=/usr
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Install binaries
run: make install
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 STRICT=1 VERBOSE=1 FEATURES='clap ladspa lv2 ui vst2 vst3'
- name: Fetch project dependencies
shell: msys2 {0}
run: make fetch
- name: Build project
shell: msys2 {0}
run: make VERBOSE=1
macos_stable:
runs-on: macos-latest
steps:
- name: Update repositories
run: brew update
- name: Install dependencies
run: brew install make pkgconf cairo freetype
- uses: actions/checkout@v3
- name: Configure project
run: gmake config STRICT=1 VERBOSE=1 FEATURES='lv2 ui'
- name: Fetch project dependencies
run: gmake fetch
- name: Build project
run: gmake VERBOSE=1
|