@@ -235,3 +235,89 @@ jobs:
235235 bin/*
236236 !bin/*-ladspa.dll
237237 !bin/*-dssi.dll
238+
239+ plugin-validation :
240+ runs-on : ubuntu-20.04
241+ steps :
242+ - uses : actions/checkout@v2
243+ with :
244+ submodules : recursive
245+ - name : Set up dependencies
246+ run : |
247+ # custom repos
248+ wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb
249+ sudo dpkg -i kxstudio-repos_10.0.3_all.deb
250+ sudo apt-get update -qq
251+ # build-deps
252+ sudo apt-get install -yq libasound2-dev libcairo2-dev libgl1-mesa-dev liblo-dev libpulse-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
253+ # runtime testing
254+ sudo apt-get install -yq carla-git lilv-utils lv2-dev lv2lint valgrind
255+ - name : Build plugins
256+ env :
257+ CFLAGS : -g
258+ CXXFLAGS : -g
259+ LDFLAGS : -static-libgcc -static-libstdc++
260+ run : |
261+ make features
262+ make NOOPT=true SKIP_STRIPPING=true -j $(nproc)
263+ - name : Validate LV2 ttl syntax
264+ run : |
265+ lv2_validate \
266+ /usr/lib/lv2/mod.lv2/*.ttl \
267+ /usr/lib/lv2/kx-meta/*.ttl \
268+ /usr/lib/lv2/kx-control-input-port-change-request.lv2/*.ttl \
269+ /usr/lib/lv2/kx-programs.lv2/*.ttl \
270+ ./bin/*.lv2/*.ttl
271+ - name : Validate LV2 metadata and binaries
272+ run : |
273+ export LV2_PATH=/tmp/lv2-path
274+ mkdir ${LV2_PATH}
275+ cp -r bin/*.lv2 \
276+ /usr/lib/lv2/{atom,buf-size,core,data-access,kx-control-input-port-change-request,kx-programs,instance-access,midi,parameters,port-groups,port-props,options,patch,presets,resize-port,state,time,ui,units,urid,worker}.lv2 \
277+ ${LV2_PATH}
278+ lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls)
279+ - name : Test LADSPA plugins
280+ run : |
281+ for p in $(ls bin/ | grep ladspa.so); do \
282+ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
283+ valgrind \
284+ --error-exitcode=255 \
285+ --leak-check=full \
286+ --track-origins=yes \
287+ --suppressions=./dpf/utils/valgrind-dpf.supp \
288+ /usr/lib/carla/carla-bridge-native ladspa ./bin/${p} "" 1>/dev/null; \
289+ done
290+ - name : Test DSSI plugins
291+ run : |
292+ for p in $(ls bin/ | grep dssi.so); do \
293+ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
294+ valgrind \
295+ --error-exitcode=255 \
296+ --leak-check=full \
297+ --track-origins=yes \
298+ --suppressions=./dpf/utils/valgrind-dpf.supp \
299+ /usr/lib/carla/carla-bridge-native dssi ./bin/${p} "" 1>/dev/null; \
300+ done
301+ - name : Test LV2 plugins
302+ run : |
303+ export LV2_PATH=/tmp/lv2-path
304+ for p in $(lv2ls); do \
305+ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
306+ valgrind \
307+ --error-exitcode=255 \
308+ --leak-check=full \
309+ --track-origins=yes \
310+ --suppressions=./dpf/utils/valgrind-dpf.supp \
311+ /usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \
312+ done
313+ - name : Test VST2 plugins
314+ run : |
315+ for p in $(ls bin/ | grep vst.so); do \
316+ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
317+ valgrind \
318+ --error-exitcode=255 \
319+ --leak-check=full \
320+ --track-origins=yes \
321+ --suppressions=./dpf/utils/valgrind-dpf.supp \
322+ /usr/lib/carla/carla-bridge-native vst2 ./bin/${p} "" 1>/dev/null; \
323+ done
0 commit comments