You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1000 lines
41KB

  1. name: build
  2. on:
  3. push:
  4. env:
  5. CACHE_VERSION: 24
  6. DEBIAN_FRONTEND: noninteractive
  7. HOMEBREW_NO_AUTO_UPDATE: 1
  8. LIBGL_ALWAYS_SOFTWARE: 'true'
  9. jobs:
  10. linux-arm64:
  11. runs-on: ubuntu-20.04
  12. steps:
  13. - uses: actions/checkout@v2
  14. with:
  15. submodules: recursive
  16. - name: Set up cache
  17. id: cache
  18. uses: actions/cache@v2
  19. with:
  20. path: |
  21. ~/PawPawBuilds
  22. */*.a
  23. bin/*.*/*.so
  24. bin/*.vst3/Contents/*/*.so
  25. bin/Cardinal
  26. build/Cardinal
  27. build/CardinalFX
  28. build/CardinalSynth
  29. build/plugins
  30. build/rack
  31. carla/build
  32. dpf/build
  33. src/Rack/dep/bin
  34. src/Rack/dep/include
  35. src/Rack/dep/lib
  36. src/Rack/dep/share
  37. src/Rack/dep/jansson-2.12
  38. src/Rack/dep/libarchive-3.4.3
  39. src/Rack/dep/libsamplerate-0.1.9
  40. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  41. src/Rack/dep/zstd-1.4.5
  42. key: linux-arm64-v${{ env.CACHE_VERSION }}
  43. - name: Fix GitHub's mess
  44. run: |
  45. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  46. sudo apt-get update -qq
  47. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  48. - name: Set up dependencies
  49. run: |
  50. sudo dpkg --add-architecture arm64
  51. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  52. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  53. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  54. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  55. sudo apt-get update -qq
  56. sudo apt-get install -yqq g++-aarch64-linux-gnu libdbus-1-dev:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 qemu-user-static
  57. - name: Build extra dependencies
  58. env:
  59. PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
  60. run: |
  61. ./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64 && ./deps/PawPaw/.cleanup.sh linux-aarch64
  62. - name: Build linux arm64 cross-compiled
  63. run: |
  64. pushd deps/PawPaw; source local.env linux-aarch64; popd
  65. make features
  66. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  67. make unzipfx
  68. - name: Set sha8 (non-release)
  69. if: startsWith(github.ref, 'refs/tags/') != true
  70. id: slug1
  71. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  72. - name: Set sha8 (release)
  73. if: startsWith(github.ref, 'refs/tags/')
  74. id: slug2
  75. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  76. - name: Set sha8
  77. id: slug
  78. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  79. - name: Pack binaries
  80. run: |
  81. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../Cardinal
  82. - uses: actions/upload-artifact@v2
  83. with:
  84. name: ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  85. path: |
  86. *.tar.gz
  87. - uses: softprops/action-gh-release@v1
  88. if: startsWith(github.ref, 'refs/tags/')
  89. with:
  90. tag_name: ${{ github.ref_name }}
  91. name: ${{ github.ref_name }}
  92. draft: false
  93. prerelease: false
  94. files: |
  95. *.tar.gz
  96. linux-armhf:
  97. runs-on: ubuntu-20.04
  98. steps:
  99. - uses: actions/checkout@v2
  100. with:
  101. submodules: recursive
  102. - name: Set up cache
  103. id: cache
  104. uses: actions/cache@v2
  105. with:
  106. path: |
  107. ~/PawPawBuilds
  108. */*.a
  109. bin/*.*/*.so
  110. bin/*.vst3/Contents/*/*.so
  111. bin/Cardinal
  112. build/Cardinal
  113. build/CardinalFX
  114. build/CardinalSynth
  115. build/plugins
  116. build/rack
  117. carla/build
  118. dpf/build
  119. src/Rack/dep/bin
  120. src/Rack/dep/include
  121. src/Rack/dep/lib
  122. src/Rack/dep/share
  123. src/Rack/dep/jansson-2.12
  124. src/Rack/dep/libarchive-3.4.3
  125. src/Rack/dep/libsamplerate-0.1.9
  126. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  127. src/Rack/dep/zstd-1.4.5
  128. key: linux-armhf-v${{ env.CACHE_VERSION }}
  129. - name: Fix GitHub's mess
  130. run: |
  131. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  132. sudo apt-get update -qq
  133. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  134. - name: Set up dependencies
  135. run: |
  136. sudo dpkg --add-architecture armhf
  137. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  138. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  139. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  140. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  141. sudo apt-get update -qq
  142. sudo apt-get install -yqq g++-arm-linux-gnueabihf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf qemu-user-static
  143. - name: Build extra dependencies
  144. env:
  145. PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
  146. run: |
  147. ./deps/PawPaw/bootstrap-cardinal.sh linux-armhf && ./deps/PawPaw/.cleanup.sh linux-armhf
  148. - name: Build linux armhf cross-compiled
  149. run: |
  150. pushd deps/PawPaw; source local.env linux-armhf; popd
  151. make features
  152. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  153. make unzipfx
  154. - name: Set sha8 (non-release)
  155. if: startsWith(github.ref, 'refs/tags/') != true
  156. id: slug1
  157. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  158. - name: Set sha8 (release)
  159. if: startsWith(github.ref, 'refs/tags/')
  160. id: slug2
  161. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  162. - name: Set sha8
  163. id: slug
  164. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  165. - name: Pack binaries
  166. run: |
  167. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../Cardinal
  168. - uses: actions/upload-artifact@v2
  169. with:
  170. name: ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  171. path: |
  172. *.tar.gz
  173. - uses: softprops/action-gh-release@v1
  174. if: startsWith(github.ref, 'refs/tags/')
  175. with:
  176. tag_name: ${{ github.ref_name }}
  177. name: ${{ github.ref_name }}
  178. draft: false
  179. prerelease: false
  180. files: |
  181. *.tar.gz
  182. linux-i686:
  183. runs-on: ubuntu-20.04
  184. steps:
  185. - uses: actions/checkout@v2
  186. with:
  187. submodules: recursive
  188. - name: Set up cache
  189. id: cache
  190. uses: actions/cache@v2
  191. with:
  192. path: |
  193. ~/PawPawBuilds
  194. */*.a
  195. bin/*.*/*.so
  196. bin/*.vst3/Contents/*/*.so
  197. bin/Cardinal
  198. build/Cardinal
  199. build/CardinalFX
  200. build/CardinalSynth
  201. build/plugins
  202. build/rack
  203. carla/build
  204. dpf/build
  205. src/Rack/dep/bin
  206. src/Rack/dep/include
  207. src/Rack/dep/lib
  208. src/Rack/dep/share
  209. src/Rack/dep/jansson-2.12
  210. src/Rack/dep/libarchive-3.4.3
  211. src/Rack/dep/libsamplerate-0.1.9
  212. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  213. src/Rack/dep/zstd-1.4.5
  214. key: linux-i686-v${{ env.CACHE_VERSION }}
  215. - name: Fix GitHub's mess
  216. run: |
  217. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  218. sudo apt-get update -qq
  219. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  220. - name: Set up dependencies
  221. run: |
  222. sudo dpkg --add-architecture i386
  223. sudo apt-get update -qq
  224. sudo apt-get install -yqq g++-multilib libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
  225. - name: Build extra dependencies
  226. env:
  227. PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
  228. run: |
  229. ./deps/PawPaw/bootstrap-cardinal.sh linux-i686 && ./deps/PawPaw/.cleanup.sh linux-i686
  230. - name: Build linux i686
  231. run: |
  232. pushd deps/PawPaw; source local.env linux-i686; popd
  233. make features
  234. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  235. make unzipfx
  236. - name: Set sha8 (non-release)
  237. if: startsWith(github.ref, 'refs/tags/') != true
  238. id: slug1
  239. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  240. - name: Set sha8 (release)
  241. if: startsWith(github.ref, 'refs/tags/')
  242. id: slug2
  243. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  244. - name: Set sha8
  245. id: slug
  246. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  247. - name: Pack binaries
  248. run: |
  249. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../Cardinal
  250. - uses: actions/upload-artifact@v2
  251. with:
  252. name: ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  253. path: |
  254. *.tar.gz
  255. - uses: softprops/action-gh-release@v1
  256. if: startsWith(github.ref, 'refs/tags/')
  257. with:
  258. tag_name: ${{ github.ref_name }}
  259. name: ${{ github.ref_name }}
  260. draft: false
  261. prerelease: false
  262. files: |
  263. *.tar.gz
  264. linux-x86_64:
  265. runs-on: ubuntu-20.04
  266. steps:
  267. - uses: actions/checkout@v2
  268. with:
  269. submodules: recursive
  270. - name: Set up cache
  271. id: cache
  272. uses: actions/cache@v2
  273. with:
  274. path: |
  275. ~/PawPawBuilds
  276. */*.a
  277. bin/*.*/*.so
  278. bin/*.vst3/Contents/*/*.so
  279. bin/Cardinal
  280. build/Cardinal
  281. build/CardinalFX
  282. build/CardinalSynth
  283. build/plugins
  284. build/rack
  285. carla/build
  286. dpf/build
  287. src/Rack/dep/bin
  288. src/Rack/dep/include
  289. src/Rack/dep/lib
  290. src/Rack/dep/share
  291. src/Rack/dep/jansson-2.12
  292. src/Rack/dep/libarchive-3.4.3
  293. src/Rack/dep/libsamplerate-0.1.9
  294. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  295. src/Rack/dep/zstd-1.4.5
  296. key: linux-x86_64-v${{ env.CACHE_VERSION }}
  297. - name: Set up dependencies
  298. run: |
  299. sudo apt-get update -qq
  300. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  301. - name: Build extra dependencies
  302. run: |
  303. ./deps/PawPaw/bootstrap-cardinal.sh linux && ./deps/PawPaw/.cleanup.sh linux
  304. - name: Build linux x86_64
  305. run: |
  306. pushd deps/PawPaw; source local.env linux; popd
  307. make features
  308. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  309. make unzipfx
  310. - name: Set sha8 (non-release)
  311. if: startsWith(github.ref, 'refs/tags/') != true
  312. id: slug1
  313. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  314. - name: Set sha8 (release)
  315. if: startsWith(github.ref, 'refs/tags/')
  316. id: slug2
  317. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  318. - name: Set sha8
  319. id: slug
  320. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  321. - name: Pack binaries
  322. run: |
  323. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst) ../Cardinal
  324. - uses: actions/upload-artifact@v2
  325. with:
  326. name: ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  327. path: |
  328. *.tar.gz
  329. - uses: softprops/action-gh-release@v1
  330. if: startsWith(github.ref, 'refs/tags/')
  331. with:
  332. tag_name: ${{ github.ref_name }}
  333. name: ${{ github.ref_name }}
  334. draft: false
  335. prerelease: false
  336. files: |
  337. *.tar.gz
  338. linux-x86_64-debug:
  339. runs-on: ubuntu-20.04
  340. steps:
  341. - uses: actions/checkout@v2
  342. with:
  343. submodules: recursive
  344. - name: Set up dependencies
  345. run: |
  346. sudo apt-get update -qq
  347. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  348. - name: Build linux x86_64 (debug)
  349. env:
  350. LDFLAGS: -static-libgcc -static-libstdc++
  351. run: |
  352. make features
  353. make DEBUG=true -j $(nproc)
  354. - name: Set sha8
  355. id: slug
  356. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  357. - name: Pack binaries
  358. run: |
  359. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst)
  360. - uses: actions/upload-artifact@v2
  361. with:
  362. name: ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  363. path: |
  364. *.tar.gz
  365. linux-x86_64-headless:
  366. runs-on: ubuntu-20.04
  367. steps:
  368. - uses: actions/checkout@v2
  369. with:
  370. submodules: recursive
  371. - name: Set up dependencies
  372. run: |
  373. sudo apt-get update -qq
  374. sudo apt-get remove -yqq libcairo2-dev libx11-dev libx11-dev libxext-dev
  375. sudo apt-get install -yqq liblo-dev
  376. - name: Build linux x86_64 (headless)
  377. run: |
  378. make HEADLESS=true features
  379. make HEADLESS=true -j $(nproc)
  380. linux-x86_64-sysdeps:
  381. runs-on: ubuntu-20.04
  382. steps:
  383. - uses: actions/checkout@v2
  384. with:
  385. submodules: recursive
  386. - name: Set up dependencies
  387. run: |
  388. sudo apt-get update -qq
  389. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev libarchive-dev libjansson-dev libsamplerate0-dev libsndfile1-dev libspeexdsp-dev
  390. - name: Build linux x86_64 (sysdeps)
  391. run: |
  392. make features
  393. make SYSDEPS=true -j $(nproc)
  394. macos-intel:
  395. runs-on: macos-10.15
  396. steps:
  397. - uses: actions/checkout@v2
  398. with:
  399. submodules: recursive
  400. - name: Set up cache
  401. id: cache
  402. uses: actions/cache@v2
  403. with:
  404. path: |
  405. ~/PawPawBuilds
  406. */*.a
  407. bin/*.*/*.dylib
  408. bin/*.*/Contents/MacOS/*
  409. bin/Cardinal
  410. build/Cardinal
  411. build/CardinalFX
  412. build/CardinalSynth
  413. build/plugins
  414. build/rack
  415. carla/build
  416. dpf/build
  417. jucewrapper/build
  418. src/Rack/dep/bin
  419. src/Rack/dep/include
  420. src/Rack/dep/lib
  421. src/Rack/dep/share
  422. src/Rack/dep/jansson-2.12
  423. src/Rack/dep/libarchive-3.4.3
  424. src/Rack/dep/libsamplerate-0.1.9
  425. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  426. src/Rack/dep/zstd-1.4.5
  427. key: macos-intel-v${{ env.CACHE_VERSION }}
  428. - name: Build extra dependencies
  429. run: |
  430. ./deps/PawPaw/bootstrap-cardinal.sh macos && ./deps/PawPaw/.cleanup.sh macos
  431. - name: Build macOS intel (base)
  432. run: |
  433. pushd deps/PawPaw; source local.env macos; popd
  434. make features
  435. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu)
  436. - name: Build macOS intel (AU using juce)
  437. env:
  438. MACOSX_DEPLOYMENT_TARGET: '10.8'
  439. run: |
  440. pushd deps/PawPaw; source local.env macos; popd
  441. git clone --depth=1 -b master https://github.com/juce-framework/JUCE.git jucewrapper/JUCE
  442. sed -i -e 's/kAudioUnitProperty_SupportsMPE/kAudioUnitProperty_ignore_SupportsMPE/' jucewrapper/JUCE/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h
  443. mkdir -p jucewrapper/build
  444. pushd jucewrapper/build; cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_BUILD_TYPE=Release .. && make VERBOSE=1 -j $(sysctl -n hw.logicalcpu); popd
  445. mv jucewrapper/build/*_artefacts/Release/AU/*.component bin/
  446. - name: Build macOS intel (packaging)
  447. env:
  448. MACOS_ARCHS: 'x86_64'
  449. run: |
  450. pushd deps/PawPaw; source local.env macos; popd
  451. ./utils/create-macos-installer.sh
  452. - name: Set sha8 (non-release)
  453. if: startsWith(github.ref, 'refs/tags/') != true
  454. id: slug1
  455. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  456. - name: Set sha8 (release)
  457. if: startsWith(github.ref, 'refs/tags/')
  458. id: slug2
  459. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  460. - name: Set sha8
  461. id: slug
  462. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  463. - name: Rename macOS bundle
  464. run: |
  465. mv ${{ github.event.repository.name }}-macOS.pkg ${{ github.event.repository.name }}-macOS-intel-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.pkg
  466. - uses: actions/upload-artifact@v2
  467. with:
  468. name: ${{ github.event.repository.name }}-macOS-intel-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  469. path: |
  470. ${{ github.event.repository.name }}-*.pkg
  471. - uses: softprops/action-gh-release@v1
  472. if: startsWith(github.ref, 'refs/tags/')
  473. with:
  474. tag_name: ${{ github.ref_name }}
  475. name: ${{ github.ref_name }}
  476. draft: false
  477. prerelease: false
  478. files: |
  479. ${{ github.event.repository.name }}-*.pkg
  480. macos-universal:
  481. runs-on: macos-10.15
  482. steps:
  483. - uses: actions/checkout@v2
  484. with:
  485. submodules: recursive
  486. - name: Set up cache
  487. id: cache
  488. uses: actions/cache@v2
  489. with:
  490. path: |
  491. ~/PawPawBuilds
  492. */*.a
  493. bin/*.*/*.dylib
  494. bin/*.*/Contents/MacOS/*
  495. bin/Cardinal
  496. build/Cardinal
  497. build/CardinalFX
  498. build/CardinalSynth
  499. build/plugins
  500. build/rack
  501. carla/build
  502. dpf/build
  503. jucewrapper/build
  504. src/Rack/dep/bin
  505. src/Rack/dep/include
  506. src/Rack/dep/lib
  507. src/Rack/dep/share
  508. src/Rack/dep/jansson-2.12
  509. src/Rack/dep/libarchive-3.4.3
  510. src/Rack/dep/libsamplerate-0.1.9
  511. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  512. src/Rack/dep/zstd-1.4.5
  513. key: macos-universal-v${{ env.CACHE_VERSION }}
  514. - name: Fix up Xcode
  515. run: |
  516. sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
  517. sudo xcode-select -s "/Applications/Xcode_12.3.app"
  518. - name: Build extra dependencies
  519. run: |
  520. ./deps/PawPaw/bootstrap-cardinal.sh macos-universal && ./deps/PawPaw/.cleanup.sh macos-universal
  521. - name: Build macOS universal (base)
  522. run: |
  523. pushd deps/PawPaw; source local.env macos-universal; popd
  524. make features
  525. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu)
  526. - name: Build macOS universal (AU using juce)
  527. env:
  528. MACOSX_DEPLOYMENT_TARGET: '10.12'
  529. run: |
  530. pushd deps/PawPaw; source local.env macos-universal; popd
  531. git clone --depth=1 -b master https://github.com/juce-framework/JUCE.git jucewrapper/JUCE
  532. mkdir -p jucewrapper/build
  533. pushd jucewrapper/build; cmake -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_BUILD_TYPE=Release .. && make VERBOSE=1 -j $(sysctl -n hw.logicalcpu); popd
  534. mv jucewrapper/build/*_artefacts/Release/AU/*.component bin/
  535. - name: Build macOS universal (packaging)
  536. env:
  537. MACOS_ARCHS: 'arm64,x86_64'
  538. run: |
  539. pushd deps/PawPaw; source local.env macos-universal; popd
  540. ./utils/create-macos-installer.sh
  541. - name: Set sha8 (non-release)
  542. if: startsWith(github.ref, 'refs/tags/') != true
  543. id: slug1
  544. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  545. - name: Set sha8 (release)
  546. if: startsWith(github.ref, 'refs/tags/')
  547. id: slug2
  548. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  549. - name: Set sha8
  550. id: slug
  551. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  552. - name: Rename macOS bundle
  553. run: |
  554. mv ${{ github.event.repository.name }}-macOS.pkg ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.pkg
  555. - uses: actions/upload-artifact@v2
  556. with:
  557. name: ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  558. path: |
  559. ${{ github.event.repository.name }}-*.pkg
  560. - uses: softprops/action-gh-release@v1
  561. if: startsWith(github.ref, 'refs/tags/')
  562. with:
  563. tag_name: ${{ github.ref_name }}
  564. name: ${{ github.ref_name }}
  565. draft: false
  566. prerelease: false
  567. files: |
  568. ${{ github.event.repository.name }}-*.pkg
  569. modduo:
  570. runs-on: ubuntu-20.04
  571. steps:
  572. - uses: actions/checkout@v2
  573. with:
  574. submodules: recursive
  575. - name: Set up cache
  576. uses: actions/cache@v2
  577. id: mpb-cache
  578. with:
  579. path: |
  580. ~/mod-workdir
  581. key: modduo-static-v${{ env.CACHE_VERSION }}
  582. - name: Set up dependencies
  583. run: |
  584. sudo apt-get update -qq
  585. sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
  586. sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
  587. - name: Bootstrap toolchain
  588. if: steps.mpb-cache.outputs.cache-hit != 'true'
  589. run: |
  590. git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder
  591. sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config
  592. $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduo-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduo-static
  593. - name: Build for modduo
  594. run: |
  595. make modduo HEADLESS=true WITH_LTO=true MODDUO=true -j $(nproc)
  596. - name: Set sha8
  597. id: slug
  598. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  599. - name: Pack binaries
  600. run: |
  601. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2)
  602. - uses: actions/upload-artifact@v2
  603. with:
  604. name: ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  605. path: |
  606. *.tar.gz
  607. modduox:
  608. runs-on: ubuntu-20.04
  609. steps:
  610. - uses: actions/checkout@v2
  611. with:
  612. submodules: recursive
  613. - name: Set up cache
  614. uses: actions/cache@v2
  615. id: mpb-cache
  616. with:
  617. path: |
  618. ~/mod-workdir
  619. key: modduox-v${{ env.CACHE_VERSION }}
  620. - name: Set up dependencies
  621. run: |
  622. sudo apt-get update -qq
  623. sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
  624. sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
  625. - name: Bootstrap toolchain
  626. if: steps.mpb-cache.outputs.cache-hit != 'true'
  627. run: |
  628. git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder
  629. sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config
  630. $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduox-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduox-static
  631. - name: Build for modduox
  632. run: |
  633. make modduox HEADLESS=true WITH_LTO=true -j $(nproc)
  634. - name: Set sha8
  635. id: slug
  636. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  637. - name: Pack binaries
  638. run: |
  639. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2)
  640. - uses: actions/upload-artifact@v2
  641. with:
  642. name: ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  643. path: |
  644. *.tar.gz
  645. moddwarf:
  646. runs-on: ubuntu-20.04
  647. steps:
  648. - uses: actions/checkout@v2
  649. with:
  650. submodules: recursive
  651. - name: Set up cache
  652. uses: actions/cache@v2
  653. id: mpb-cache
  654. with:
  655. path: |
  656. ~/mod-workdir
  657. key: moddwarf-v${{ env.CACHE_VERSION }}
  658. - name: Set up dependencies
  659. run: |
  660. sudo apt-get update -qq
  661. sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
  662. sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
  663. - name: Bootstrap toolchain
  664. if: steps.mpb-cache.outputs.cache-hit != 'true'
  665. run: |
  666. git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder
  667. sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config
  668. $(pwd)/deps/mod-plugin-builder/bootstrap.sh moddwarf minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh moddwarf
  669. - name: Build for moddwarf
  670. run: |
  671. make moddwarf HEADLESS=true WITH_LTO=true -j $(nproc)
  672. - name: Set sha8
  673. id: slug
  674. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  675. - name: Pack binaries
  676. run: |
  677. tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2)
  678. - uses: actions/upload-artifact@v2
  679. with:
  680. name: ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  681. path: |
  682. *.tar.gz
  683. win32:
  684. runs-on: ubuntu-20.04
  685. steps:
  686. - uses: actions/checkout@v2
  687. with:
  688. submodules: recursive
  689. - name: Set up cache
  690. id: cache
  691. uses: actions/cache@v2
  692. with:
  693. path: |
  694. ~/PawPawBuilds
  695. */*.a
  696. bin/*.*/*.dll
  697. bin/*.vst3/Contents/*/*.vst3
  698. bin/Cardinal.exe
  699. build/Cardinal
  700. build/CardinalFX
  701. build/CardinalSynth
  702. build/plugins
  703. build/rack
  704. carla/build
  705. dpf/build
  706. src/Rack/dep/bin
  707. src/Rack/dep/include
  708. src/Rack/dep/lib
  709. src/Rack/dep/share
  710. src/Rack/dep/jansson-2.12
  711. src/Rack/dep/libarchive-3.4.3
  712. src/Rack/dep/libsamplerate-0.1.9
  713. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  714. src/Rack/dep/zstd-1.4.5
  715. key: win32-v${{ env.CACHE_VERSION }}
  716. - name: Fix GitHub's mess
  717. run: |
  718. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  719. sudo apt-get update -qq
  720. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  721. - name: Set up dependencies
  722. run: |
  723. sudo dpkg --add-architecture i386
  724. sudo apt-get update -qq
  725. sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 qttools5-dev qttools5-dev-tools xvfb
  726. - name: Build extra dependencies
  727. run: |
  728. ./deps/PawPaw/bootstrap-cardinal.sh win32 && ./deps/PawPaw/.cleanup.sh win32
  729. - name: Build win32 cross-compiled (base)
  730. run: |
  731. pushd deps/PawPaw; source local.env win32; popd
  732. make features
  733. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  734. - name: Build win64 cross-compiled (carla)
  735. run: |
  736. pushd deps/PawPaw; source local.env win32; popd
  737. make -C carla CARLA_BACKEND_NAMESPACE=Cardinal EXTERNAL_PLUGINS=true HAVE_FLUIDSYNTH=false HAVE_ZYN_DEPS=false HAVE_ZYN_UI_DEPS=false HAVE_PYQT=true HAVE_QT5=true HAVE_QT5PKG=true STATIC_PLUGIN_TARGET=true USING_CUSTOM_DPF=true CUSTOM_DPF_PATH=$(pwd)/dpf -j $(nproc)
  738. make -C carla EMBED_TARGET=true TESTING=true dist
  739. make -C carla EMBED_TARGET=true TESTING=true dist
  740. - name: Build win64 cross-compiled (packaging)
  741. run: |
  742. pushd deps/PawPaw; source local.env win32; popd
  743. xvfb-run ./utils/create-windows-installer.sh 32
  744. - name: Set sha8 (non-release)
  745. if: startsWith(github.ref, 'refs/tags/') != true
  746. id: slug1
  747. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  748. - name: Set sha8 (release)
  749. if: startsWith(github.ref, 'refs/tags/')
  750. id: slug2
  751. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  752. - name: Set sha8
  753. id: slug
  754. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  755. - name: Pack binaries
  756. run: |
  757. cd bin; zip -r -9 ../${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls | grep -e lv2 -e vst)
  758. - uses: actions/upload-artifact@v2
  759. with:
  760. name: ${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  761. path: |
  762. *.exe
  763. *.zip
  764. - uses: softprops/action-gh-release@v1
  765. if: startsWith(github.ref, 'refs/tags/')
  766. with:
  767. tag_name: ${{ github.ref_name }}
  768. name: ${{ github.ref_name }}
  769. draft: false
  770. prerelease: false
  771. files: |
  772. *.exe
  773. *.zip
  774. win64:
  775. runs-on: ubuntu-20.04
  776. steps:
  777. - uses: actions/checkout@v2
  778. with:
  779. submodules: recursive
  780. - name: Set up cache
  781. id: cache
  782. uses: actions/cache@v2
  783. with:
  784. path: |
  785. ~/PawPawBuilds
  786. */*.a
  787. bin/*.*/*.dll
  788. bin/*.vst3/Contents/*/*.vst3
  789. bin/Cardinal.exe
  790. build/Cardinal
  791. build/CardinalFX
  792. build/CardinalSynth
  793. build/plugins
  794. build/rack
  795. carla/build
  796. dpf/build
  797. src/Rack/dep/bin
  798. src/Rack/dep/include
  799. src/Rack/dep/lib
  800. src/Rack/dep/share
  801. src/Rack/dep/jansson-2.12
  802. src/Rack/dep/libarchive-3.4.3
  803. src/Rack/dep/libsamplerate-0.1.9
  804. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  805. src/Rack/dep/zstd-1.4.5
  806. key: win64-v${{ env.CACHE_VERSION }}
  807. - name: Fix GitHub's mess
  808. run: |
  809. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  810. sudo apt-get update -qq
  811. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  812. - name: Set up dependencies
  813. run: |
  814. sudo dpkg --add-architecture i386
  815. sudo apt-get update -qq
  816. sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable qttools5-dev qttools5-dev-tools xvfb
  817. - name: Build extra dependencies
  818. run: |
  819. ./deps/PawPaw/bootstrap-cardinal.sh win64 && ./deps/PawPaw/.cleanup.sh win64
  820. - name: Build win64 cross-compiled (base)
  821. run: |
  822. pushd deps/PawPaw; source local.env win64; popd
  823. make features
  824. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  825. - name: Build win64 cross-compiled (carla)
  826. run: |
  827. pushd deps/PawPaw; source local.env win64; popd
  828. make -C carla CARLA_BACKEND_NAMESPACE=Cardinal EXTERNAL_PLUGINS=true HAVE_FLUIDSYNTH=false HAVE_ZYN_DEPS=false HAVE_ZYN_UI_DEPS=false HAVE_PYQT=true HAVE_QT5=true HAVE_QT5PKG=true STATIC_PLUGIN_TARGET=true USING_CUSTOM_DPF=true CUSTOM_DPF_PATH=$(pwd)/dpf all win32r -j $(nproc)
  829. make -C carla EMBED_TARGET=true TESTING=true dist
  830. make -C carla EMBED_TARGET=true TESTING=true dist
  831. - name: Build win64 cross-compiled (packaging)
  832. run: |
  833. pushd deps/PawPaw; source local.env win64; popd
  834. xvfb-run ./utils/create-windows-installer.sh 64
  835. - name: Set sha8 (non-release)
  836. if: startsWith(github.ref, 'refs/tags/') != true
  837. id: slug1
  838. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  839. - name: Set sha8 (release)
  840. if: startsWith(github.ref, 'refs/tags/')
  841. id: slug2
  842. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  843. - name: Set sha8
  844. id: slug
  845. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  846. - name: Pack binaries
  847. run: |
  848. cd bin; zip -r -9 ../${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls | grep -e lv2 -e vst)
  849. - uses: actions/upload-artifact@v2
  850. with:
  851. name: ${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  852. path: |
  853. *.exe
  854. *.zip
  855. - uses: softprops/action-gh-release@v1
  856. if: startsWith(github.ref, 'refs/tags/')
  857. with:
  858. tag_name: ${{ github.ref_name }}
  859. name: ${{ github.ref_name }}
  860. draft: false
  861. prerelease: false
  862. files: |
  863. *.exe
  864. *.zip
  865. source-tarball:
  866. runs-on: ubuntu-20.04
  867. steps:
  868. - uses: actions/checkout@v2
  869. with:
  870. submodules: recursive
  871. - name: Set up dependencies
  872. run: |
  873. sudo apt-get update -qq
  874. sudo apt-get install -yqq liblo-dev
  875. - name: Create source tarball
  876. run: |
  877. make HEADLESS=true tarball
  878. make HEADLESS=true tarball+deps
  879. - name: Set sha8 (non-release)
  880. if: startsWith(github.ref, 'refs/tags/') != true
  881. id: slug1
  882. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  883. - name: Set sha8 (release)
  884. if: startsWith(github.ref, 'refs/tags/')
  885. id: slug2
  886. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  887. - name: Set sha8
  888. id: slug
  889. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  890. - uses: actions/upload-artifact@v2
  891. with:
  892. name: ${{ github.event.repository.name }}-source-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  893. path: |
  894. /home/runner/cardinal*.tar.xz
  895. /home/runner/*/cardinal*.tar.xz
  896. /home/runner/*/*/cardinal*.tar.xz
  897. - uses: softprops/action-gh-release@v1
  898. if: startsWith(github.ref, 'refs/tags/')
  899. with:
  900. tag_name: ${{ github.ref_name }}
  901. name: ${{ github.ref_name }}
  902. draft: false
  903. prerelease: false
  904. files: |
  905. /home/runner/cardinal*.tar.xz
  906. /home/runner/*/cardinal*.tar.xz
  907. /home/runner/*/*/cardinal*.tar.xz
  908. plugin-validation:
  909. runs-on: ubuntu-20.04
  910. steps:
  911. - uses: actions/checkout@v2
  912. with:
  913. submodules: recursive
  914. - name: Set up dependencies
  915. run: |
  916. # custom repos
  917. wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb
  918. sudo dpkg -i kxstudio-repos_10.0.3_all.deb
  919. sudo apt-get update -qq
  920. # build-deps
  921. sudo apt-get install -yqq liblo-dev
  922. # runtime testing
  923. sudo apt-get install -yqq carla-git lilv-utils lv2-dev lv2lint valgrind
  924. - name: Build Cardinal
  925. env:
  926. CFLAGS: -g
  927. CXXFLAGS: -g -DDPF_ABORT_ON_ERROR
  928. LDFLAGS: -static-libgcc -static-libstdc++
  929. run: |
  930. make HEADLESS=true features
  931. make HEADLESS=true NOOPT=true NOPLUGINS=true STATIC_BUILD=true SKIP_STRIPPING=true -j $(nproc)
  932. - name: Validate LV2 ttl syntax
  933. run: |
  934. lv2_validate \
  935. /usr/lib/lv2/mod.lv2/*.ttl \
  936. /usr/lib/lv2/kx-meta/*.ttl \
  937. /usr/lib/lv2/kx-control-input-port-change-request.lv2/*.ttl \
  938. /usr/lib/lv2/kx-programs.lv2/*.ttl \
  939. ./bin/*.lv2/*.ttl
  940. - name: Validate LV2 metadata and binaries
  941. run: |
  942. export LV2_PATH=/tmp/lv2-path
  943. mkdir ${LV2_PATH}
  944. cp -r bin/CardinalFX.lv2 bin/CardinalSynth.lv2 \
  945. /usr/lib/lv2/{atom,buf-size,core,data-access,kx-control-input-port-change-request,kx-programs,instance-access,midi,mod,parameters,port-groups,port-props,options,patch,presets,resize-port,state,time,ui,units,urid,worker}.lv2 \
  946. ${LV2_PATH}
  947. lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls)
  948. - name: Test LV2 plugin
  949. run: |
  950. export LV2_PATH=/tmp/lv2-path
  951. for p in $(lv2ls); do \
  952. env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  953. valgrind \
  954. --error-exitcode=255 \
  955. --leak-check=no \
  956. --track-origins=yes \
  957. --suppressions=./dpf/utils/valgrind-dpf.supp \
  958. /usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \
  959. done
  960. - name: Test VST2 plugin
  961. run: |
  962. for p in $(ls bin/*.vst/*.so); do \
  963. env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  964. valgrind \
  965. --error-exitcode=255 \
  966. --leak-check=no \
  967. --track-origins=yes \
  968. --suppressions=./dpf/utils/valgrind-dpf.supp \
  969. /usr/lib/carla/carla-bridge-native vst2 ./${p} "" 1>/dev/null; \
  970. done
  971. - name: Test VST3 plugin
  972. run: |
  973. for p in $(ls bin/ | grep vst3); do \
  974. env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  975. valgrind \
  976. --error-exitcode=255 \
  977. --leak-check=no \
  978. --track-origins=yes \
  979. --suppressions=./dpf/utils/valgrind-dpf.supp \
  980. /usr/lib/carla/carla-bridge-native vst3 ./bin/${p} "" 1>/dev/null; \
  981. done