| @@ -235,3 +235,89 @@ jobs: | |||
| bin/* | |||
| !bin/*-ladspa.dll | |||
| !bin/*-dssi.dll | |||
| plugin-validation: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| with: | |||
| submodules: recursive | |||
| - name: Set up dependencies | |||
| run: | | |||
| # custom repos | |||
| wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb | |||
| sudo dpkg -i kxstudio-repos_10.0.3_all.deb | |||
| sudo apt-get update -qq | |||
| # build-deps | |||
| sudo apt-get install -yq libasound2-dev libcairo2-dev libgl1-mesa-dev liblo-dev libpulse-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev | |||
| # runtime testing | |||
| sudo apt-get install -yq carla-git lilv-utils lv2-dev lv2lint valgrind | |||
| - name: Build plugins | |||
| env: | |||
| CFLAGS: -g | |||
| CXXFLAGS: -g | |||
| LDFLAGS: -static-libgcc -static-libstdc++ | |||
| run: | | |||
| make features | |||
| make NOOPT=true SKIP_STRIPPING=true -j $(nproc) | |||
| - name: Validate LV2 ttl syntax | |||
| run: | | |||
| lv2_validate \ | |||
| /usr/lib/lv2/mod.lv2/*.ttl \ | |||
| /usr/lib/lv2/kx-meta/*.ttl \ | |||
| /usr/lib/lv2/kx-control-input-port-change-request.lv2/*.ttl \ | |||
| /usr/lib/lv2/kx-programs.lv2/*.ttl \ | |||
| ./bin/*.lv2/*.ttl | |||
| - name: Validate LV2 metadata and binaries | |||
| run: | | |||
| export LV2_PATH=/tmp/lv2-path | |||
| mkdir ${LV2_PATH} | |||
| cp -r bin/*.lv2 \ | |||
| /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 \ | |||
| ${LV2_PATH} | |||
| lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls) | |||
| - name: Test LADSPA plugins | |||
| run: | | |||
| for p in $(ls bin/ | grep ladspa.so); do \ | |||
| env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |||
| valgrind \ | |||
| --error-exitcode=255 \ | |||
| --leak-check=full \ | |||
| --track-origins=yes \ | |||
| --suppressions=./dpf/utils/valgrind-dpf.supp \ | |||
| /usr/lib/carla/carla-bridge-native ladspa ./bin/${p} "" 1>/dev/null; \ | |||
| done | |||
| - name: Test DSSI plugins | |||
| run: | | |||
| for p in $(ls bin/ | grep dssi.so); do \ | |||
| env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |||
| valgrind \ | |||
| --error-exitcode=255 \ | |||
| --leak-check=full \ | |||
| --track-origins=yes \ | |||
| --suppressions=./dpf/utils/valgrind-dpf.supp \ | |||
| /usr/lib/carla/carla-bridge-native dssi ./bin/${p} "" 1>/dev/null; \ | |||
| done | |||
| - name: Test LV2 plugins | |||
| run: | | |||
| export LV2_PATH=/tmp/lv2-path | |||
| for p in $(lv2ls); do \ | |||
| env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |||
| valgrind \ | |||
| --error-exitcode=255 \ | |||
| --leak-check=full \ | |||
| --track-origins=yes \ | |||
| --suppressions=./dpf/utils/valgrind-dpf.supp \ | |||
| /usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \ | |||
| done | |||
| - name: Test VST2 plugins | |||
| run: | | |||
| for p in $(ls bin/ | grep vst.so); do \ | |||
| env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |||
| valgrind \ | |||
| --error-exitcode=255 \ | |||
| --leak-check=full \ | |||
| --track-origins=yes \ | |||
| --suppressions=./dpf/utils/valgrind-dpf.supp \ | |||
| /usr/lib/carla/carla-bridge-native vst2 ./bin/${p} "" 1>/dev/null; \ | |||
| done | |||