Skip to content

Commit 68fa5d5

Browse files
committed
Add plugin validation to CI
Signed-off-by: falkTX <falktx@falktx.com>
1 parent 02eb6d9 commit 68fa5d5

File tree

2 files changed

+87
-1
lines changed

2 files changed

+87
-1
lines changed

.github/workflows/build.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

dpf

Submodule dpf updated 61 files

0 commit comments

Comments
 (0)