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.

525 lines
22KB

  1. name: build
  2. on:
  3. push:
  4. branches:
  5. - '*'
  6. pull_request:
  7. branches:
  8. - '*'
  9. env:
  10. CACHE_VERSION: 5
  11. DEBIAN_FRONTEND: noninteractive
  12. HOMEBREW_NO_AUTO_UPDATE: 1
  13. LIBGL_ALWAYS_SOFTWARE: 'true'
  14. jobs:
  15. linux-arm64:
  16. runs-on: ubuntu-20.04
  17. steps:
  18. - uses: actions/checkout@v2
  19. with:
  20. submodules: recursive
  21. - name: Set up cache
  22. uses: actions/cache@v2
  23. with:
  24. path: |
  25. ~/PawPawBuilds
  26. ~/work/Cardinal/Cardinal/build/plugins
  27. ~/work/Cardinal/Cardinal/build/rack
  28. key: linux-arm64-v${{ env.CACHE_VERSION }}
  29. - name: Fix GitHub's mess
  30. run: |
  31. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  32. sudo apt-get update -qq
  33. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  34. - name: Set up dependencies
  35. run: |
  36. sudo dpkg --add-architecture arm64
  37. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  38. 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
  39. 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
  40. 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
  41. sudo apt-get update -qq
  42. 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
  43. - name: Build extra dependencies
  44. env:
  45. PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
  46. run: |
  47. ./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64
  48. - name: Build linux arm64 cross-compiled
  49. run: |
  50. pushd deps/PawPaw; source local.env linux-aarch64; popd
  51. make features
  52. make NOOPT=true SKIP_RTAUDIO_FALLBACK=true WITH_LTO=true -j $(nproc)
  53. make unzipfx
  54. - name: Set sha8
  55. id: slug
  56. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  57. - name: Pack binaries
  58. run: |
  59. 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
  60. - uses: actions/upload-artifact@v2
  61. with:
  62. name: ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  63. path: |
  64. *.tar.gz
  65. linux-armhf:
  66. runs-on: ubuntu-20.04
  67. steps:
  68. - uses: actions/checkout@v2
  69. with:
  70. submodules: recursive
  71. - name: Set up cache
  72. uses: actions/cache@v2
  73. with:
  74. path: |
  75. ~/PawPawBuilds
  76. ~/work/Cardinal/Cardinal/build/plugins
  77. ~/work/Cardinal/Cardinal/build/rack
  78. key: linux-armhf-v${{ env.CACHE_VERSION }}
  79. - name: Fix GitHub's mess
  80. run: |
  81. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  82. sudo apt-get update -qq
  83. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  84. - name: Set up dependencies
  85. run: |
  86. sudo dpkg --add-architecture armhf
  87. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  88. 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
  89. 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
  90. 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
  91. sudo apt-get update -qq
  92. 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
  93. - name: Build extra dependencies
  94. env:
  95. PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
  96. run: |
  97. ./deps/PawPaw/bootstrap-cardinal.sh linux-armhf
  98. - name: Build linux armhf cross-compiled
  99. run: |
  100. pushd deps/PawPaw; source local.env linux-armhf; popd
  101. make features
  102. make NOOPT=true SKIP_RTAUDIO_FALLBACK=true WITH_LTO=true -j $(nproc)
  103. make unzipfx
  104. - name: Set sha8
  105. id: slug
  106. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  107. - name: Pack binaries
  108. run: |
  109. 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
  110. - uses: actions/upload-artifact@v2
  111. with:
  112. name: ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  113. path: |
  114. *.tar.gz
  115. linux-i686:
  116. runs-on: ubuntu-20.04
  117. steps:
  118. - uses: actions/checkout@v2
  119. with:
  120. submodules: recursive
  121. - name: Set up cache
  122. uses: actions/cache@v2
  123. with:
  124. path: |
  125. ~/PawPawBuilds
  126. ~/work/Cardinal/Cardinal/build/plugins
  127. ~/work/Cardinal/Cardinal/build/rack
  128. key: linux-i686-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 i386
  137. sudo apt-get update -qq
  138. 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
  139. - name: Build extra dependencies
  140. env:
  141. PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
  142. run: |
  143. ./deps/PawPaw/bootstrap-cardinal.sh linux-i686
  144. - name: Build linux i686
  145. run: |
  146. pushd deps/PawPaw; source local.env linux-i686; popd
  147. make features
  148. make NOOPT=true SKIP_RTAUDIO_FALLBACK=true WITH_LTO=true -j $(nproc)
  149. make unzipfx
  150. - name: Set sha8
  151. id: slug
  152. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  153. - name: Pack binaries
  154. run: |
  155. 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
  156. - uses: actions/upload-artifact@v2
  157. with:
  158. name: ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  159. path: |
  160. *.tar.gz
  161. linux-x86_64:
  162. runs-on: ubuntu-20.04
  163. steps:
  164. - uses: actions/checkout@v2
  165. with:
  166. submodules: recursive
  167. - name: Set up cache
  168. uses: actions/cache@v2
  169. with:
  170. path: |
  171. ~/PawPawBuilds
  172. ~/work/Cardinal/Cardinal/build/plugins
  173. ~/work/Cardinal/Cardinal/build/rack
  174. key: linux-x86_64-v${{ env.CACHE_VERSION }}
  175. - name: Set up dependencies
  176. run: |
  177. sudo apt-get update -qq
  178. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  179. - name: Build extra dependencies
  180. run: |
  181. ./deps/PawPaw/bootstrap-cardinal.sh linux
  182. - name: Build linux x86_64
  183. run: |
  184. pushd deps/PawPaw; source local.env linux; popd
  185. make features
  186. make NOOPT=true SKIP_RTAUDIO_FALLBACK=true WITH_LTO=true -j $(nproc)
  187. make unzipfx
  188. - name: Set sha8
  189. id: slug
  190. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  191. - name: Pack binaries
  192. run: |
  193. 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
  194. - uses: actions/upload-artifact@v2
  195. with:
  196. name: ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  197. path: |
  198. *.tar.gz
  199. linux-x86_64-debug:
  200. runs-on: ubuntu-20.04
  201. steps:
  202. - uses: actions/checkout@v2
  203. with:
  204. submodules: recursive
  205. - name: Set up dependencies
  206. run: |
  207. sudo apt-get update -qq
  208. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  209. - name: Build linux x86_64 (debug)
  210. env:
  211. LDFLAGS: -static-libgcc -static-libstdc++
  212. run: |
  213. make features
  214. make DEBUG=true -j $(nproc)
  215. - name: Set sha8
  216. id: slug
  217. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  218. - name: Pack binaries
  219. run: |
  220. 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)
  221. - uses: actions/upload-artifact@v2
  222. with:
  223. name: ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  224. path: |
  225. *.tar.gz
  226. linux-x86_64-headless:
  227. runs-on: ubuntu-20.04
  228. steps:
  229. - uses: actions/checkout@v2
  230. with:
  231. submodules: recursive
  232. - name: Set up dependencies
  233. run: |
  234. sudo apt-get update -qq
  235. sudo apt-get remove -yqq libcairo2-dev libx11-dev libx11-dev libxext-dev
  236. sudo apt-get install -yqq liblo-dev
  237. - name: Build linux x86_64 (headless)
  238. run: |
  239. make HEADLESS=true features
  240. make HEADLESS=true -j $(nproc)
  241. linux-x86_64-sysdeps:
  242. runs-on: ubuntu-20.04
  243. steps:
  244. - uses: actions/checkout@v2
  245. with:
  246. submodules: recursive
  247. - name: Set up dependencies
  248. run: |
  249. sudo apt-get update -qq
  250. 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
  251. - name: Build linux x86_64 (sysdeps)
  252. run: |
  253. make features
  254. make SYSDEPS=true -j $(nproc)
  255. macos-universal:
  256. runs-on: macos-10.15
  257. steps:
  258. - uses: actions/checkout@v2
  259. with:
  260. submodules: recursive
  261. - name: Set up cache
  262. uses: actions/cache@v2
  263. with:
  264. path: |
  265. ~/PawPawBuilds
  266. ~/work/Cardinal/Cardinal/build/plugins
  267. ~/work/Cardinal/Cardinal/build/rack
  268. key: macos-universal-v${{ env.CACHE_VERSION }}
  269. - name: Fix up Xcode
  270. run: |
  271. sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
  272. sudo xcode-select -s "/Applications/Xcode_12.3.app"
  273. - name: Build extra dependencies
  274. run: |
  275. ./deps/PawPaw/bootstrap-cardinal.sh macos-universal
  276. - name: Build macOS universal
  277. run: |
  278. pushd deps/PawPaw; source local.env macos-universal; popd
  279. make features
  280. make NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu)
  281. ./dpf/utils/package-osx-bundles.sh
  282. - name: Set sha8
  283. id: slug
  284. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  285. - uses: actions/upload-artifact@v2
  286. with:
  287. name: ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  288. path: |
  289. *-macOS.pkg
  290. modduox:
  291. runs-on: ubuntu-20.04
  292. steps:
  293. - uses: actions/checkout@v2
  294. with:
  295. submodules: recursive
  296. - name: Set up cache
  297. uses: actions/cache@v2
  298. with:
  299. path: |
  300. ~/PawPawBuilds
  301. ~/work/Cardinal/Cardinal/build/plugins
  302. ~/work/Cardinal/Cardinal/build/rack
  303. key: modduox-v${{ env.CACHE_VERSION }}
  304. - name: Fix GitHub's mess
  305. run: |
  306. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  307. sudo apt-get update -qq
  308. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  309. - name: Set up dependencies
  310. run: |
  311. sudo dpkg --add-architecture arm64
  312. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  313. 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
  314. 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
  315. 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
  316. sudo apt-get update -qq
  317. 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
  318. - name: Build extra dependencies
  319. env:
  320. EXTRA_FLAGS: -mcpu=cortex-a72.cortex-a53 -mtune=cortex-a72.cortex-a53 -mfix-cortex-a53-835769 -mfix-cortex-a53-843419
  321. PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
  322. run: |
  323. ./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64
  324. - name: Build for modduox
  325. env:
  326. EXTRA_FLAGS: -mcpu=cortex-a72.cortex-a53 -mtune=cortex-a72.cortex-a53 -mfix-cortex-a53-835769 -mfix-cortex-a53-843419
  327. run: |
  328. pushd deps/PawPaw; source local.env linux-aarch64; popd
  329. make features
  330. # fancy dance to skip building Standalone and VSTs
  331. make HEADLESS=true NOOPT=true WITH_LTO=true -j $(nproc) carla deps plugins dpf/utils/lv2_ttl_generator
  332. make HEADLESS=true NOOPT=true WITH_LTO=true -j $(nproc) -C src rack.a
  333. make HEADLESS=true NOOPT=true WITH_LTO=true -j $(nproc) -C src/CardinalFX lv2 resources
  334. make HEADLESS=true NOOPT=true WITH_LTO=true -j $(nproc) -C src/CardinalSynth lv2
  335. make HEADLESS=true NOOPT=true WITH_LTO=true -j $(nproc) -C plugins resources
  336. ./dpf/utils/generate-ttl.sh
  337. - name: Set sha8
  338. id: slug
  339. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  340. - name: Pack binaries
  341. run: |
  342. 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)
  343. - uses: actions/upload-artifact@v2
  344. with:
  345. name: ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  346. path: |
  347. *.tar.gz
  348. # modduo: -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mvectorize-with-neon-quad
  349. # moddwarf: -mcpu=cortex-a35 -mtune=cortex-a35
  350. win32:
  351. runs-on: ubuntu-20.04
  352. steps:
  353. - uses: actions/checkout@v2
  354. with:
  355. submodules: recursive
  356. - name: Set up cache
  357. uses: actions/cache@v2
  358. with:
  359. path: |
  360. ~/PawPawBuilds
  361. ~/work/Cardinal/Cardinal/build/plugins
  362. ~/work/Cardinal/Cardinal/build/rack
  363. key: win32-v${{ env.CACHE_VERSION }}
  364. - name: Fix GitHub's mess
  365. run: |
  366. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  367. sudo apt-get update -qq
  368. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  369. - name: Set up dependencies
  370. run: |
  371. sudo dpkg --add-architecture i386
  372. sudo apt-get update -qq
  373. sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386
  374. - name: Build extra dependencies
  375. run: |
  376. ./deps/PawPaw/bootstrap-cardinal.sh win32
  377. - name: Build win32 cross-compiled
  378. run: |
  379. pushd deps/PawPaw; source local.env win32; popd
  380. make features
  381. make NOOPT=true WITH_LTO=true -j $(nproc)
  382. - name: Set sha8
  383. id: slug
  384. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  385. - name: Pack binaries
  386. run: |
  387. 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)
  388. - uses: actions/upload-artifact@v2
  389. with:
  390. name: ${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  391. path: |
  392. *.zip
  393. win64:
  394. runs-on: ubuntu-20.04
  395. steps:
  396. - uses: actions/checkout@v2
  397. with:
  398. submodules: recursive
  399. - name: Set up cache
  400. uses: actions/cache@v2
  401. with:
  402. path: |
  403. ~/PawPawBuilds
  404. ~/work/Cardinal/Cardinal/build/plugins
  405. ~/work/Cardinal/Cardinal/build/rack
  406. key: win64-v${{ env.CACHE_VERSION }}
  407. - name: Fix GitHub's mess
  408. run: |
  409. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  410. sudo apt-get update -qq
  411. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  412. - name: Set up dependencies
  413. run: |
  414. sudo apt-get update -qq
  415. sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
  416. - name: Build extra dependencies
  417. run: |
  418. ./deps/PawPaw/bootstrap-cardinal.sh win64
  419. - name: Build win64 cross-compiled
  420. run: |
  421. pushd deps/PawPaw; source local.env win64; popd
  422. make features
  423. make NOOPT=true WITH_LTO=true -j $(nproc)
  424. - name: Set sha8
  425. id: slug
  426. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  427. - name: Pack binaries
  428. run: |
  429. 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)
  430. - uses: actions/upload-artifact@v2
  431. with:
  432. name: ${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  433. path: |
  434. *.zip
  435. plugin-validation:
  436. runs-on: ubuntu-20.04
  437. steps:
  438. - uses: actions/checkout@v2
  439. with:
  440. submodules: recursive
  441. - name: Set up dependencies
  442. run: |
  443. # custom repos
  444. wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb
  445. sudo dpkg -i kxstudio-repos_10.0.3_all.deb
  446. sudo apt-get update -qq
  447. # build-deps
  448. sudo apt-get install -yqq libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  449. # runtime testing
  450. sudo apt-get install -yqq carla-git lilv-utils lv2-dev lv2lint valgrind
  451. - name: Build plugins
  452. env:
  453. CFLAGS: -g
  454. CXXFLAGS: -g -DDPF_ABORT_ON_ERROR
  455. LDFLAGS: -static-libgcc -static-libstdc++
  456. run: |
  457. make features
  458. make NOOPT=true SKIP_STRIPPING=true -j $(nproc)
  459. - name: Validate LV2 ttl syntax
  460. run: |
  461. lv2_validate \
  462. /usr/lib/lv2/mod.lv2/*.ttl \
  463. /usr/lib/lv2/kx-meta/*.ttl \
  464. /usr/lib/lv2/kx-control-input-port-change-request.lv2/*.ttl \
  465. /usr/lib/lv2/kx-programs.lv2/*.ttl \
  466. ./bin/*.lv2/*.ttl
  467. #- name: Validate LV2 metadata and binaries
  468. #run: |
  469. #export LV2_PATH=/tmp/lv2-path
  470. #mkdir ${LV2_PATH}
  471. #cp -r bin/*.lv2 \
  472. #/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 \
  473. #${LV2_PATH}
  474. #lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls)
  475. - name: Test LV2 plugin
  476. run: |
  477. export LV2_PATH=/tmp/lv2-path
  478. for p in $(lv2ls); do \
  479. env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  480. valgrind \
  481. --error-exitcode=255 \
  482. --leak-check=no \
  483. --track-origins=yes \
  484. --suppressions=./dpf/utils/valgrind-dpf.supp \
  485. /usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \
  486. done
  487. # - name: Test VST2 plugin
  488. # env:
  489. # CARLA_DO_NOT_USE_JUCE_FOR_VST2: 1
  490. # run: |
  491. # for p in $(ls bin/*.vst/*.so); do \
  492. # env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  493. # valgrind \
  494. # --error-exitcode=255 \
  495. # --leak-check=no \
  496. # --track-origins=yes \
  497. # --suppressions=./dpf/utils/valgrind-dpf.supp \
  498. # /usr/lib/carla/carla-bridge-native vst2 ./${p} "" 1>/dev/null; \
  499. # done
  500. # - name: Test VST3 plugin
  501. # run: |
  502. # for p in $(ls bin/ | grep vst3); do \
  503. # env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  504. # valgrind \
  505. # --error-exitcode=255 \
  506. # --leak-check=no \
  507. # --track-origins=yes \
  508. # --suppressions=./dpf/utils/valgrind-dpf.supp \
  509. # /usr/lib/carla/carla-bridge-native vst3 ./bin/${p} "" 1>/dev/null; \
  510. # done