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.

1140 lines
46KB

  1. name: build
  2. on:
  3. push:
  4. env:
  5. CACHE_VERSION: 26
  6. CARDINAL_UNDER_WINE: 1
  7. DEBIAN_FRONTEND: noninteractive
  8. HOMEBREW_NO_AUTO_UPDATE: 1
  9. LIBGL_ALWAYS_SOFTWARE: 'true'
  10. jobs:
  11. linux-arm64:
  12. runs-on: ubuntu-20.04
  13. steps:
  14. - uses: actions/checkout@v2
  15. with:
  16. submodules: recursive
  17. - name: Set up cache
  18. id: cache
  19. uses: actions/cache@v2
  20. with:
  21. path: |
  22. ~/PawPawBuilds
  23. */*.a
  24. bin/*.*/*.so
  25. bin/*.vst3/Contents/*/*.so
  26. bin/Cardinal
  27. build/Cardinal
  28. build/CardinalFX
  29. build/CardinalSynth
  30. build/plugins
  31. build/rack
  32. carla/build
  33. dpf/build
  34. src/Rack/dep/bin
  35. src/Rack/dep/include
  36. src/Rack/dep/lib
  37. src/Rack/dep/share
  38. src/Rack/dep/jansson-2.12
  39. src/Rack/dep/libarchive-3.4.3
  40. src/Rack/dep/libsamplerate-0.1.9
  41. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  42. src/Rack/dep/zstd-1.4.5
  43. key: linux-arm64-v${{ env.CACHE_VERSION }}
  44. - name: Fix GitHub's mess
  45. run: |
  46. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  47. sudo apt-get update -qq
  48. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  49. - name: Set up dependencies
  50. run: |
  51. sudo dpkg --add-architecture arm64
  52. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  53. 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
  54. 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
  55. 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
  56. sudo apt-get update -qq
  57. 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
  58. - name: Build extra dependencies
  59. env:
  60. PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
  61. run: |
  62. ./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64 && ./deps/PawPaw/.cleanup.sh linux-aarch64
  63. - name: Build linux arm64 cross-compiled
  64. run: |
  65. pushd deps/PawPaw; source local.env linux-aarch64; popd
  66. make features
  67. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  68. make unzipfx
  69. - name: Set sha8 (non-release)
  70. if: startsWith(github.ref, 'refs/tags/') != true
  71. id: slug1
  72. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  73. - name: Set sha8 (release)
  74. if: startsWith(github.ref, 'refs/tags/')
  75. id: slug2
  76. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  77. - name: Set sha8
  78. id: slug
  79. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  80. - name: Pack binaries
  81. run: |
  82. 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
  83. - uses: actions/upload-artifact@v2
  84. with:
  85. name: ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  86. path: |
  87. *.tar.gz
  88. - uses: softprops/action-gh-release@v1
  89. if: startsWith(github.ref, 'refs/tags/')
  90. with:
  91. tag_name: ${{ github.ref_name }}
  92. name: ${{ github.ref_name }}
  93. draft: false
  94. prerelease: false
  95. files: |
  96. *.tar.gz
  97. linux-armhf:
  98. runs-on: ubuntu-20.04
  99. steps:
  100. - uses: actions/checkout@v2
  101. with:
  102. submodules: recursive
  103. - name: Set up cache
  104. id: cache
  105. uses: actions/cache@v2
  106. with:
  107. path: |
  108. ~/PawPawBuilds
  109. */*.a
  110. bin/*.*/*.so
  111. bin/*.vst3/Contents/*/*.so
  112. bin/Cardinal
  113. build/Cardinal
  114. build/CardinalFX
  115. build/CardinalSynth
  116. build/plugins
  117. build/rack
  118. carla/build
  119. dpf/build
  120. src/Rack/dep/bin
  121. src/Rack/dep/include
  122. src/Rack/dep/lib
  123. src/Rack/dep/share
  124. src/Rack/dep/jansson-2.12
  125. src/Rack/dep/libarchive-3.4.3
  126. src/Rack/dep/libsamplerate-0.1.9
  127. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  128. src/Rack/dep/zstd-1.4.5
  129. key: linux-armhf-v${{ env.CACHE_VERSION }}
  130. - name: Fix GitHub's mess
  131. run: |
  132. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  133. sudo apt-get update -qq
  134. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  135. - name: Set up dependencies
  136. run: |
  137. sudo dpkg --add-architecture armhf
  138. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  139. 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
  140. 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
  141. 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
  142. sudo apt-get update -qq
  143. 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
  144. - name: Build extra dependencies
  145. env:
  146. PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
  147. run: |
  148. ./deps/PawPaw/bootstrap-cardinal.sh linux-armhf && ./deps/PawPaw/.cleanup.sh linux-armhf
  149. - name: Build linux armhf cross-compiled
  150. run: |
  151. pushd deps/PawPaw; source local.env linux-armhf; popd
  152. make features
  153. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  154. make unzipfx
  155. - name: Set sha8 (non-release)
  156. if: startsWith(github.ref, 'refs/tags/') != true
  157. id: slug1
  158. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  159. - name: Set sha8 (release)
  160. if: startsWith(github.ref, 'refs/tags/')
  161. id: slug2
  162. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  163. - name: Set sha8
  164. id: slug
  165. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  166. - name: Pack binaries
  167. run: |
  168. 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
  169. - uses: actions/upload-artifact@v2
  170. with:
  171. name: ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  172. path: |
  173. *.tar.gz
  174. - uses: softprops/action-gh-release@v1
  175. if: startsWith(github.ref, 'refs/tags/')
  176. with:
  177. tag_name: ${{ github.ref_name }}
  178. name: ${{ github.ref_name }}
  179. draft: false
  180. prerelease: false
  181. files: |
  182. *.tar.gz
  183. linux-i686:
  184. runs-on: ubuntu-20.04
  185. steps:
  186. - uses: actions/checkout@v2
  187. with:
  188. submodules: recursive
  189. - name: Set up cache
  190. id: cache
  191. uses: actions/cache@v2
  192. with:
  193. path: |
  194. ~/PawPawBuilds
  195. */*.a
  196. bin/*.*/*.so
  197. bin/*.vst3/Contents/*/*.so
  198. bin/Cardinal
  199. build/Cardinal
  200. build/CardinalFX
  201. build/CardinalSynth
  202. build/plugins
  203. build/rack
  204. carla/build
  205. dpf/build
  206. src/Rack/dep/bin
  207. src/Rack/dep/include
  208. src/Rack/dep/lib
  209. src/Rack/dep/share
  210. src/Rack/dep/jansson-2.12
  211. src/Rack/dep/libarchive-3.4.3
  212. src/Rack/dep/libsamplerate-0.1.9
  213. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  214. src/Rack/dep/zstd-1.4.5
  215. key: linux-i686-v${{ env.CACHE_VERSION }}
  216. - name: Fix GitHub's mess
  217. run: |
  218. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  219. sudo apt-get update -qq
  220. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  221. - name: Set up dependencies
  222. run: |
  223. sudo dpkg --add-architecture i386
  224. sudo apt-get update -qq
  225. 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
  226. - name: Build extra dependencies
  227. env:
  228. PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
  229. run: |
  230. ./deps/PawPaw/bootstrap-cardinal.sh linux-i686 && ./deps/PawPaw/.cleanup.sh linux-i686
  231. - name: Build linux i686
  232. run: |
  233. pushd deps/PawPaw; source local.env linux-i686; popd
  234. make features
  235. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  236. make unzipfx
  237. - name: Set sha8 (non-release)
  238. if: startsWith(github.ref, 'refs/tags/') != true
  239. id: slug1
  240. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  241. - name: Set sha8 (release)
  242. if: startsWith(github.ref, 'refs/tags/')
  243. id: slug2
  244. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  245. - name: Set sha8
  246. id: slug
  247. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  248. - name: Pack binaries
  249. run: |
  250. 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
  251. - uses: actions/upload-artifact@v2
  252. with:
  253. name: ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  254. path: |
  255. *.tar.gz
  256. - uses: softprops/action-gh-release@v1
  257. if: startsWith(github.ref, 'refs/tags/')
  258. with:
  259. tag_name: ${{ github.ref_name }}
  260. name: ${{ github.ref_name }}
  261. draft: false
  262. prerelease: false
  263. files: |
  264. *.tar.gz
  265. linux-x86_64:
  266. runs-on: ubuntu-20.04
  267. steps:
  268. - uses: actions/checkout@v2
  269. with:
  270. submodules: recursive
  271. - name: Set up cache
  272. id: cache
  273. uses: actions/cache@v2
  274. with:
  275. path: |
  276. ~/PawPawBuilds
  277. */*.a
  278. bin/*.*/*.so
  279. bin/*.vst3/Contents/*/*.so
  280. bin/Cardinal
  281. build/Cardinal
  282. build/CardinalFX
  283. build/CardinalSynth
  284. build/plugins
  285. build/rack
  286. carla/build
  287. dpf/build
  288. src/Rack/dep/bin
  289. src/Rack/dep/include
  290. src/Rack/dep/lib
  291. src/Rack/dep/share
  292. src/Rack/dep/jansson-2.12
  293. src/Rack/dep/libarchive-3.4.3
  294. src/Rack/dep/libsamplerate-0.1.9
  295. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  296. src/Rack/dep/zstd-1.4.5
  297. key: linux-x86_64-v${{ env.CACHE_VERSION }}
  298. - name: Set up dependencies
  299. run: |
  300. sudo apt-get update -qq
  301. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  302. - name: Build extra dependencies
  303. run: |
  304. ./deps/PawPaw/bootstrap-cardinal.sh linux && ./deps/PawPaw/.cleanup.sh linux
  305. - name: Build linux x86_64
  306. run: |
  307. pushd deps/PawPaw; source local.env linux; popd
  308. make features
  309. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  310. make unzipfx
  311. - name: Set sha8 (non-release)
  312. if: startsWith(github.ref, 'refs/tags/') != true
  313. id: slug1
  314. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  315. - name: Set sha8 (release)
  316. if: startsWith(github.ref, 'refs/tags/')
  317. id: slug2
  318. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  319. - name: Set sha8
  320. id: slug
  321. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  322. - name: Pack binaries
  323. run: |
  324. 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
  325. - uses: actions/upload-artifact@v2
  326. with:
  327. name: ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  328. path: |
  329. *.tar.gz
  330. - uses: softprops/action-gh-release@v1
  331. if: startsWith(github.ref, 'refs/tags/')
  332. with:
  333. tag_name: ${{ github.ref_name }}
  334. name: ${{ github.ref_name }}
  335. draft: false
  336. prerelease: false
  337. files: |
  338. *.tar.gz
  339. linux-x86_64-debug:
  340. runs-on: ubuntu-20.04
  341. steps:
  342. - uses: actions/checkout@v2
  343. with:
  344. submodules: recursive
  345. - name: Set up dependencies
  346. run: |
  347. sudo apt-get update -qq
  348. sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  349. - name: Build linux x86_64 (debug)
  350. env:
  351. LDFLAGS: -static-libgcc -static-libstdc++
  352. run: |
  353. make features
  354. make DEBUG=true -j $(nproc)
  355. - name: Set sha8
  356. id: slug
  357. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  358. - name: Pack binaries
  359. run: |
  360. 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)
  361. - uses: actions/upload-artifact@v2
  362. with:
  363. name: ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  364. path: |
  365. *.tar.gz
  366. linux-x86_64-headless:
  367. runs-on: ubuntu-20.04
  368. steps:
  369. - uses: actions/checkout@v2
  370. with:
  371. submodules: recursive
  372. - name: Set up dependencies
  373. run: |
  374. sudo apt-get update -qq
  375. sudo apt-get remove -yqq libcairo2-dev libx11-dev libx11-dev libxext-dev
  376. sudo apt-get install -yqq liblo-dev
  377. - name: Build linux x86_64 (headless)
  378. run: |
  379. make HEADLESS=true features
  380. make HEADLESS=true -j $(nproc)
  381. linux-x86_64-sysdeps:
  382. runs-on: ubuntu-20.04
  383. steps:
  384. - uses: actions/checkout@v2
  385. with:
  386. submodules: recursive
  387. - name: Set up dependencies
  388. run: |
  389. sudo apt-get update -qq
  390. 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
  391. - name: Build linux x86_64 (sysdeps)
  392. run: |
  393. make features
  394. make SYSDEPS=true -j $(nproc)
  395. macos-intel:
  396. runs-on: macos-11
  397. steps:
  398. - uses: actions/checkout@v2
  399. with:
  400. submodules: recursive
  401. - name: Set up cache
  402. id: cache
  403. uses: actions/cache@v2
  404. with:
  405. path: |
  406. ~/PawPawBuilds
  407. */*.a
  408. bin/*.*/*.dylib
  409. bin/*.*/Contents/MacOS/*
  410. bin/Cardinal
  411. build/Cardinal
  412. build/CardinalFX
  413. build/CardinalSynth
  414. build/plugins
  415. build/rack
  416. carla/build
  417. dpf/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 6.1.6 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_OSX_SYSROOT=$(xcrun --sdk macosx --show-sdk-path) -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-11
  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. src/Rack/dep/bin
  504. src/Rack/dep/include
  505. src/Rack/dep/lib
  506. src/Rack/dep/share
  507. src/Rack/dep/jansson-2.12
  508. src/Rack/dep/libarchive-3.4.3
  509. src/Rack/dep/libsamplerate-0.1.9
  510. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  511. src/Rack/dep/zstd-1.4.5
  512. key: macos-universal-v${{ env.CACHE_VERSION }}
  513. - name: Build extra dependencies
  514. run: |
  515. ./deps/PawPaw/bootstrap-cardinal.sh macos-universal && ./deps/PawPaw/.cleanup.sh macos-universal
  516. - name: Build macOS universal (base)
  517. run: |
  518. pushd deps/PawPaw; source local.env macos-universal; popd
  519. make features
  520. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu)
  521. - name: Build macOS universal (AU using juce)
  522. env:
  523. MACOSX_DEPLOYMENT_TARGET: '10.12'
  524. run: |
  525. pushd deps/PawPaw; source local.env macos-universal; popd
  526. git clone --depth=1 -b 6.1.6 https://github.com/juce-framework/JUCE.git jucewrapper/JUCE
  527. mkdir -p jucewrapper/build
  528. pushd jucewrapper/build; cmake -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_OSX_SYSROOT=$(xcrun --sdk macosx --show-sdk-path) -DCMAKE_BUILD_TYPE=Release .. && make VERBOSE=1 -j $(sysctl -n hw.logicalcpu); popd
  529. mv jucewrapper/build/*_artefacts/Release/AU/*.component bin/
  530. - name: Build macOS universal (packaging)
  531. env:
  532. MACOS_ARCHS: 'arm64,x86_64'
  533. run: |
  534. pushd deps/PawPaw; source local.env macos-universal; popd
  535. ./utils/create-macos-installer.sh
  536. - name: Set sha8 (non-release)
  537. if: startsWith(github.ref, 'refs/tags/') != true
  538. id: slug1
  539. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  540. - name: Set sha8 (release)
  541. if: startsWith(github.ref, 'refs/tags/')
  542. id: slug2
  543. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  544. - name: Set sha8
  545. id: slug
  546. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  547. - name: Rename macOS bundle
  548. run: |
  549. mv ${{ github.event.repository.name }}-macOS.pkg ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.pkg
  550. - uses: actions/upload-artifact@v2
  551. with:
  552. name: ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  553. path: |
  554. ${{ github.event.repository.name }}-*.pkg
  555. - uses: softprops/action-gh-release@v1
  556. if: startsWith(github.ref, 'refs/tags/')
  557. with:
  558. tag_name: ${{ github.ref_name }}
  559. name: ${{ github.ref_name }}
  560. draft: false
  561. prerelease: false
  562. files: |
  563. ${{ github.event.repository.name }}-*.pkg
  564. modduo:
  565. runs-on: ubuntu-20.04
  566. steps:
  567. - uses: actions/checkout@v2
  568. with:
  569. submodules: recursive
  570. - name: Set up cache
  571. uses: actions/cache@v2
  572. id: mpb-cache
  573. with:
  574. path: |
  575. ~/mod-workdir
  576. key: modduo-static-v${{ env.CACHE_VERSION }}
  577. - name: Set up dependencies
  578. run: |
  579. sudo apt-get update -qq
  580. 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
  581. sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
  582. - name: Bootstrap toolchain
  583. if: steps.mpb-cache.outputs.cache-hit != 'true'
  584. run: |
  585. git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder
  586. sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config
  587. $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduo-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduo-static
  588. - name: Build for modduo
  589. run: |
  590. make modduo HEADLESS=true WITH_LTO=true MODDUO=true -j $(nproc)
  591. - name: Set sha8
  592. id: slug
  593. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  594. - name: Pack binaries
  595. run: |
  596. 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)
  597. - uses: actions/upload-artifact@v2
  598. with:
  599. name: ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  600. path: |
  601. *.tar.gz
  602. modduox:
  603. runs-on: ubuntu-20.04
  604. steps:
  605. - uses: actions/checkout@v2
  606. with:
  607. submodules: recursive
  608. - name: Set up cache
  609. uses: actions/cache@v2
  610. id: mpb-cache
  611. with:
  612. path: |
  613. ~/mod-workdir
  614. key: modduox-v${{ env.CACHE_VERSION }}
  615. - name: Set up dependencies
  616. run: |
  617. sudo apt-get update -qq
  618. 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
  619. sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
  620. - name: Bootstrap toolchain
  621. if: steps.mpb-cache.outputs.cache-hit != 'true'
  622. run: |
  623. git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder
  624. sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config
  625. $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduox-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduox-static
  626. - name: Build for modduox
  627. run: |
  628. make modduox HEADLESS=true WITH_LTO=true -j $(nproc)
  629. - name: Set sha8
  630. id: slug
  631. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  632. - name: Pack binaries
  633. run: |
  634. 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)
  635. - uses: actions/upload-artifact@v2
  636. with:
  637. name: ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  638. path: |
  639. *.tar.gz
  640. moddwarf:
  641. runs-on: ubuntu-20.04
  642. steps:
  643. - uses: actions/checkout@v2
  644. with:
  645. submodules: recursive
  646. - name: Set up cache
  647. uses: actions/cache@v2
  648. id: mpb-cache
  649. with:
  650. path: |
  651. ~/mod-workdir
  652. key: moddwarf-v${{ env.CACHE_VERSION }}
  653. - name: Set up dependencies
  654. run: |
  655. sudo apt-get update -qq
  656. 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
  657. sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
  658. - name: Bootstrap toolchain
  659. if: steps.mpb-cache.outputs.cache-hit != 'true'
  660. run: |
  661. git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder
  662. sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config
  663. $(pwd)/deps/mod-plugin-builder/bootstrap.sh moddwarf minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh moddwarf
  664. - name: Build for moddwarf
  665. run: |
  666. make moddwarf HEADLESS=true WITH_LTO=true -j $(nproc)
  667. - name: Set sha8
  668. id: slug
  669. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  670. - name: Pack binaries
  671. run: |
  672. 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)
  673. - uses: actions/upload-artifact@v2
  674. with:
  675. name: ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  676. path: |
  677. *.tar.gz
  678. wasm:
  679. runs-on: ubuntu-20.04
  680. steps:
  681. - uses: actions/checkout@v2
  682. with:
  683. submodules: recursive
  684. - name: Set up cache
  685. id: cache
  686. uses: actions/cache@v2
  687. with:
  688. path: |
  689. ~/PawPawBuilds
  690. */*.a
  691. build/CardinalFX
  692. build/plugins
  693. build/rack
  694. carla/build
  695. dpf/build
  696. src/Rack/dep/bin
  697. src/Rack/dep/include
  698. src/Rack/dep/lib
  699. src/Rack/dep/share
  700. src/Rack/dep/jansson-2.12
  701. src/Rack/dep/libarchive-3.4.3
  702. src/Rack/dep/libsamplerate-0.1.9
  703. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  704. src/Rack/dep/zstd-1.4.5
  705. key: wasm-v${{ env.CACHE_VERSION }}
  706. - name: Set up dependencies
  707. run: |
  708. [ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  709. cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
  710. - name: Build extra dependencies
  711. run: |
  712. source ~/PawPawBuilds/emsdk/emsdk_env.sh
  713. ./deps/PawPaw/bootstrap-cardinal.sh wasm && ./deps/PawPaw/.cleanup.sh wasm
  714. - name: Build wasm cross-compiled
  715. run: |
  716. source ~/PawPawBuilds/emsdk/emsdk_env.sh
  717. pushd deps/PawPaw; source local.env wasm; popd
  718. make features
  719. make CIBUILD=true NOOPT=true USE_GLES2=true -j $(nproc)
  720. - name: Set sha8 (non-release)
  721. if: startsWith(github.ref, 'refs/tags/') != true
  722. id: slug1
  723. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  724. - name: Set sha8 (release)
  725. if: startsWith(github.ref, 'refs/tags/')
  726. id: slug2
  727. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  728. - name: Set sha8
  729. id: slug
  730. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  731. - name: Pack binaries
  732. run: |
  733. cd bin; zip -r -9 ../${{ github.event.repository.name }}-wasm-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls *.html *.data *.js *.wasm)
  734. - uses: actions/upload-artifact@v2
  735. with:
  736. name: ${{ github.event.repository.name }}-wasm-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  737. path: |
  738. *.zip
  739. - uses: softprops/action-gh-release@v1
  740. if: startsWith(github.ref, 'refs/tags/')
  741. with:
  742. tag_name: ${{ github.ref_name }}
  743. name: ${{ github.ref_name }}
  744. draft: false
  745. prerelease: false
  746. files: |
  747. *.zip
  748. wasm-mini:
  749. runs-on: ubuntu-20.04
  750. steps:
  751. - uses: actions/checkout@v2
  752. with:
  753. submodules: recursive
  754. - name: Set up cache
  755. id: cache
  756. uses: actions/cache@v2
  757. with:
  758. path: |
  759. ~/emsdk
  760. */*.a
  761. build/CardinalFX
  762. build/plugins
  763. build/rack
  764. dpf/build
  765. src/Rack/dep/bin
  766. src/Rack/dep/include
  767. src/Rack/dep/lib
  768. src/Rack/dep/share
  769. src/Rack/dep/jansson-2.12
  770. src/Rack/dep/libarchive-3.4.3
  771. src/Rack/dep/libsamplerate-0.1.9
  772. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  773. src/Rack/dep/zstd-1.4.5
  774. key: wasm-mini-v${{ env.CACHE_VERSION }}
  775. - name: Set up dependencies
  776. run: |
  777. [ -e ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
  778. cd ~/emsdk && ./emsdk install latest && ./emsdk activate latest
  779. - name: Build wasm-mini cross-compiled
  780. env:
  781. AR: emar
  782. CC: emcc
  783. CXX: em++
  784. NM: emnm
  785. RANLIB: emranlib
  786. STRIP: emstrip
  787. run: |
  788. source ~/emsdk/emsdk_env.sh
  789. make features
  790. make CIBUILD=true NOPLUGINS=true STATIC_BUILD=true USE_GLES2=true -j $(nproc)
  791. - name: Set sha8 (non-release)
  792. if: startsWith(github.ref, 'refs/tags/') != true
  793. id: slug1
  794. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  795. - name: Set sha8 (release)
  796. if: startsWith(github.ref, 'refs/tags/')
  797. id: slug2
  798. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  799. - name: Set sha8
  800. id: slug
  801. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  802. - name: Pack binaries
  803. run: |
  804. cd bin; zip -r -9 ../${{ github.event.repository.name }}-wasm-mini-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.zip $(ls *.html *.data *.js *.wasm)
  805. - uses: actions/upload-artifact@v2
  806. with:
  807. name: ${{ github.event.repository.name }}-wasm-mini-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  808. path: |
  809. *.zip
  810. - uses: softprops/action-gh-release@v1
  811. if: startsWith(github.ref, 'refs/tags/')
  812. with:
  813. tag_name: ${{ github.ref_name }}
  814. name: ${{ github.ref_name }}
  815. draft: false
  816. prerelease: false
  817. files: |
  818. *.zip
  819. win32:
  820. runs-on: ubuntu-20.04
  821. steps:
  822. - uses: actions/checkout@v2
  823. with:
  824. submodules: recursive
  825. - name: Set up cache
  826. id: cache
  827. uses: actions/cache@v2
  828. with:
  829. path: |
  830. ~/PawPawBuilds
  831. */*.a
  832. bin/*.*/*.dll
  833. bin/*.vst3/Contents/*/*.vst3
  834. bin/Cardinal.exe
  835. build/Cardinal
  836. build/CardinalFX
  837. build/CardinalSynth
  838. build/plugins
  839. build/rack
  840. carla/build
  841. dpf/build
  842. src/Rack/dep/bin
  843. src/Rack/dep/include
  844. src/Rack/dep/lib
  845. src/Rack/dep/share
  846. src/Rack/dep/jansson-2.12
  847. src/Rack/dep/libarchive-3.4.3
  848. src/Rack/dep/libsamplerate-0.1.9
  849. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  850. src/Rack/dep/zstd-1.4.5
  851. key: win32-v${{ env.CACHE_VERSION }}
  852. - name: Fix GitHub's mess
  853. run: |
  854. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  855. sudo apt-get update -qq
  856. sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  857. sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4
  858. - name: Set up dependencies
  859. run: |
  860. sudo dpkg --add-architecture i386
  861. sudo apt-get update -qq
  862. sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 qttools5-dev qttools5-dev-tools xvfb
  863. - name: Build extra dependencies
  864. run: |
  865. ./deps/PawPaw/bootstrap-cardinal.sh win32 && ./deps/PawPaw/.cleanup.sh win32
  866. - name: Build win32 cross-compiled (base)
  867. run: |
  868. pushd deps/PawPaw; source local.env win32; popd
  869. make features
  870. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  871. - name: Build win64 cross-compiled (carla)
  872. run: |
  873. pushd deps/PawPaw; source local.env win32; popd
  874. 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)
  875. make -C carla EMBED_TARGET=true TESTING=true dist
  876. make -C carla EMBED_TARGET=true TESTING=true dist
  877. - name: Build win64 cross-compiled (packaging)
  878. run: |
  879. pushd deps/PawPaw; source local.env win32; popd
  880. xvfb-run ./utils/create-windows-installer.sh 32
  881. - name: Set sha8 (non-release)
  882. if: startsWith(github.ref, 'refs/tags/') != true
  883. id: slug1
  884. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  885. - name: Set sha8 (release)
  886. if: startsWith(github.ref, 'refs/tags/')
  887. id: slug2
  888. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  889. - name: Set sha8
  890. id: slug
  891. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  892. - name: Pack binaries
  893. run: |
  894. 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)
  895. - uses: actions/upload-artifact@v2
  896. with:
  897. name: ${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  898. path: |
  899. *.exe
  900. *.zip
  901. - uses: softprops/action-gh-release@v1
  902. if: startsWith(github.ref, 'refs/tags/')
  903. with:
  904. tag_name: ${{ github.ref_name }}
  905. name: ${{ github.ref_name }}
  906. draft: false
  907. prerelease: false
  908. files: |
  909. *.exe
  910. *.zip
  911. win64:
  912. runs-on: ubuntu-20.04
  913. steps:
  914. - uses: actions/checkout@v2
  915. with:
  916. submodules: recursive
  917. - name: Set up cache
  918. id: cache
  919. uses: actions/cache@v2
  920. with:
  921. path: |
  922. ~/PawPawBuilds
  923. */*.a
  924. bin/*.*/*.dll
  925. bin/*.vst3/Contents/*/*.vst3
  926. bin/Cardinal.exe
  927. build/Cardinal
  928. build/CardinalFX
  929. build/CardinalSynth
  930. build/plugins
  931. build/rack
  932. carla/build
  933. dpf/build
  934. src/Rack/dep/bin
  935. src/Rack/dep/include
  936. src/Rack/dep/lib
  937. src/Rack/dep/share
  938. src/Rack/dep/jansson-2.12
  939. src/Rack/dep/libarchive-3.4.3
  940. src/Rack/dep/libsamplerate-0.1.9
  941. src/Rack/dep/speexdsp-SpeexDSP-1.2rc3
  942. src/Rack/dep/zstd-1.4.5
  943. key: win64-v${{ env.CACHE_VERSION }}
  944. - name: Fix GitHub's mess
  945. run: |
  946. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  947. sudo apt-get update -qq
  948. sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  949. sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4
  950. - name: Set up dependencies
  951. run: |
  952. sudo dpkg --add-architecture i386
  953. sudo apt-get update -qq
  954. 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
  955. - name: Build extra dependencies
  956. run: |
  957. ./deps/PawPaw/bootstrap-cardinal.sh win64 && ./deps/PawPaw/.cleanup.sh win64
  958. - name: Build win64 cross-compiled (base)
  959. run: |
  960. pushd deps/PawPaw; source local.env win64; popd
  961. make features
  962. make CIBUILD=true NOOPT=true WITH_LTO=true -j $(nproc)
  963. - name: Build win64 cross-compiled (carla)
  964. run: |
  965. pushd deps/PawPaw; source local.env win64; popd
  966. 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)
  967. make -C carla EMBED_TARGET=true TESTING=true dist
  968. make -C carla EMBED_TARGET=true TESTING=true dist
  969. - name: Build win64 cross-compiled (packaging)
  970. run: |
  971. pushd deps/PawPaw; source local.env win64; popd
  972. xvfb-run ./utils/create-windows-installer.sh 64
  973. - name: Set sha8 (non-release)
  974. if: startsWith(github.ref, 'refs/tags/') != true
  975. id: slug1
  976. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  977. - name: Set sha8 (release)
  978. if: startsWith(github.ref, 'refs/tags/')
  979. id: slug2
  980. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  981. - name: Set sha8
  982. id: slug
  983. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  984. - name: Pack binaries
  985. run: |
  986. 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)
  987. - uses: actions/upload-artifact@v2
  988. with:
  989. name: ${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  990. path: |
  991. *.exe
  992. *.zip
  993. - uses: softprops/action-gh-release@v1
  994. if: startsWith(github.ref, 'refs/tags/')
  995. with:
  996. tag_name: ${{ github.ref_name }}
  997. name: ${{ github.ref_name }}
  998. draft: false
  999. prerelease: false
  1000. files: |
  1001. *.exe
  1002. *.zip
  1003. source-tarball:
  1004. runs-on: ubuntu-20.04
  1005. steps:
  1006. - uses: actions/checkout@v2
  1007. with:
  1008. submodules: recursive
  1009. - name: Set up dependencies
  1010. run: |
  1011. sudo apt-get update -qq
  1012. sudo apt-get install -yqq liblo-dev
  1013. - name: Create source tarball
  1014. run: |
  1015. make HEADLESS=true tarball
  1016. make HEADLESS=true tarball+deps
  1017. - name: Set sha8 (non-release)
  1018. if: startsWith(github.ref, 'refs/tags/') != true
  1019. id: slug1
  1020. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  1021. - name: Set sha8 (release)
  1022. if: startsWith(github.ref, 'refs/tags/')
  1023. id: slug2
  1024. run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})"
  1025. - name: Set sha8
  1026. id: slug
  1027. run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})"
  1028. - uses: actions/upload-artifact@v2
  1029. with:
  1030. name: ${{ github.event.repository.name }}-source-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  1031. path: |
  1032. /home/runner/cardinal*.tar.xz
  1033. /home/runner/*/cardinal*.tar.xz
  1034. /home/runner/*/*/cardinal*.tar.xz
  1035. - uses: softprops/action-gh-release@v1
  1036. if: startsWith(github.ref, 'refs/tags/')
  1037. with:
  1038. tag_name: ${{ github.ref_name }}
  1039. name: ${{ github.ref_name }}
  1040. draft: false
  1041. prerelease: false
  1042. files: |
  1043. /home/runner/cardinal*.tar.xz
  1044. /home/runner/*/cardinal*.tar.xz
  1045. /home/runner/*/*/cardinal*.tar.xz
  1046. plugin-validation:
  1047. runs-on: ubuntu-20.04
  1048. steps:
  1049. - uses: actions/checkout@v2
  1050. with:
  1051. submodules: recursive
  1052. - name: Set up dependencies
  1053. run: |
  1054. # custom repos
  1055. wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb
  1056. sudo dpkg -i kxstudio-repos_10.0.3_all.deb
  1057. sudo apt-get update -qq
  1058. # build-deps
  1059. sudo apt-get install -yqq liblo-dev
  1060. # runtime testing
  1061. sudo apt-get install -yqq carla-git lilv-utils lv2-dev lv2lint valgrind
  1062. - name: Build Cardinal
  1063. env:
  1064. CFLAGS: -g
  1065. CXXFLAGS: -g -DDPF_ABORT_ON_ERROR
  1066. LDFLAGS: -static-libgcc -static-libstdc++
  1067. run: |
  1068. make HEADLESS=true features
  1069. make HEADLESS=true NOOPT=true NOPLUGINS=true SKIP_STRIPPING=true -j $(nproc)
  1070. - name: Validate LV2 ttl syntax
  1071. run: |
  1072. lv2_validate \
  1073. /usr/lib/lv2/mod.lv2/*.ttl \
  1074. /usr/lib/lv2/kx-meta/*.ttl \
  1075. /usr/lib/lv2/kx-control-input-port-change-request.lv2/*.ttl \
  1076. /usr/lib/lv2/kx-programs.lv2/*.ttl \
  1077. ./bin/*.lv2/*.ttl
  1078. - name: Validate LV2 metadata and binaries
  1079. run: |
  1080. export LV2_PATH=/tmp/lv2-path
  1081. mkdir ${LV2_PATH}
  1082. cp -r bin/CardinalFX.lv2 bin/CardinalSynth.lv2 \
  1083. /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 \
  1084. ${LV2_PATH}
  1085. lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls)
  1086. - name: Test LV2 plugin
  1087. run: |
  1088. export LV2_PATH=/tmp/lv2-path
  1089. for p in $(lv2ls); do \
  1090. env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  1091. valgrind \
  1092. --error-exitcode=255 \
  1093. --leak-check=no \
  1094. --track-origins=yes \
  1095. --suppressions=./dpf/utils/valgrind-dpf.supp \
  1096. /usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \
  1097. done
  1098. - name: Test VST2 plugin
  1099. run: |
  1100. for p in $(ls bin/*.vst/*.so); do \
  1101. env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  1102. valgrind \
  1103. --error-exitcode=255 \
  1104. --leak-check=no \
  1105. --track-origins=yes \
  1106. --suppressions=./dpf/utils/valgrind-dpf.supp \
  1107. /usr/lib/carla/carla-bridge-native vst2 ./${p} "" 1>/dev/null; \
  1108. done
  1109. #- name: Test VST3 plugin
  1110. #run: |
  1111. #for p in $(ls bin/ | grep vst3); do \
  1112. #env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
  1113. #valgrind \
  1114. #--error-exitcode=255 \
  1115. #--leak-check=no \
  1116. #--track-origins=yes \
  1117. #--suppressions=./dpf/utils/valgrind-dpf.supp \
  1118. #/usr/lib/carla/carla-bridge-native vst3 ./bin/${p} "" 1>/dev/null; \
  1119. #done