DISTRHO Plugin Framework
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.

217 lines
7.8KB

  1. name: example-plugins
  2. on:
  3. push:
  4. branches:
  5. - '*'
  6. pull_request:
  7. branches:
  8. - '*'
  9. env:
  10. DEBIAN_FRONTEND: noninteractive
  11. jobs:
  12. linux-arm64:
  13. runs-on: ubuntu-18.04
  14. steps:
  15. - uses: actions/checkout@v2
  16. with:
  17. submodules: recursive
  18. - name: Set up dependencies
  19. run: |
  20. sudo dpkg --add-architecture arm64
  21. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  22. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  23. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports bionic-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  24. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports bionic-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  25. sudo apt-get update -qq
  26. sudo apt-get install -yq g++-aarch64-linux-gnu libasound2-dev:arm64 libcairo2-dev:arm64 libgl1-mesa-dev:arm64 liblo-dev:arm64 libpulse-dev:arm64 qemu-user-static
  27. - name: Build linux arm64 cross-compiled
  28. env:
  29. CC: aarch64-linux-gnu-gcc
  30. CXX: aarch64-linux-gnu-g++
  31. LDFLAGS: -static-libgcc -static-libstdc++
  32. run: |
  33. make -j $(nproc)
  34. - name: Set sha8
  35. id: slug
  36. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  37. - uses: actions/upload-artifact@v2
  38. with:
  39. name: ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  40. path: |
  41. bin/*
  42. linux-armhf:
  43. runs-on: ubuntu-18.04
  44. steps:
  45. - uses: actions/checkout@v2
  46. with:
  47. submodules: recursive
  48. - name: Set up dependencies
  49. run: |
  50. sudo dpkg --add-architecture armhf
  51. sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  52. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  53. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  54. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  55. sudo apt-get update -qq
  56. sudo apt-get install -yq g++-arm-linux-gnueabihf libasound2-dev:armhf libcairo2-dev:armhf libgl1-mesa-dev:armhf liblo-dev:armhf libpulse-dev:armhf qemu-user-static
  57. - name: Build linux armhf cross-compiled
  58. env:
  59. CC: arm-linux-gnueabihf-gcc
  60. CXX: arm-linux-gnueabihf-g++
  61. LDFLAGS: -static-libgcc -static-libstdc++
  62. run: |
  63. make -j $(nproc)
  64. - name: Set sha8
  65. id: slug
  66. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  67. - uses: actions/upload-artifact@v2
  68. with:
  69. name: ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  70. path: |
  71. bin/*
  72. linux-x86:
  73. runs-on: ubuntu-18.04
  74. steps:
  75. - uses: actions/checkout@v2
  76. with:
  77. submodules: recursive
  78. - name: Set up dependencies
  79. run: |
  80. sudo dpkg --add-architecture i386
  81. sudo apt-get update -qq
  82. sudo apt-get install -yq g++-multilib libasound2-dev:i386 libcairo2-dev:i386 libgl1-mesa-dev:i386 liblo-dev:i386 libpulse-dev:i386
  83. - name: Build linux x86
  84. env:
  85. CFLAGS: -m32
  86. CXXFLAGS: -m32
  87. LDFLAGS: -m32 -static-libgcc -static-libstdc++
  88. run: |
  89. make -j $(nproc)
  90. - name: Set sha8
  91. id: slug
  92. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  93. - uses: actions/upload-artifact@v2
  94. with:
  95. name: ${{ github.event.repository.name }}-linux-x86-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  96. path: |
  97. bin/*
  98. linux-x86_64:
  99. runs-on: ubuntu-18.04
  100. steps:
  101. - uses: actions/checkout@v2
  102. with:
  103. submodules: recursive
  104. - name: Set up dependencies
  105. run: |
  106. sudo apt-get install -yq libasound2-dev libgl1-mesa-dev liblo-dev libpulse-dev
  107. - name: Build linux x86_64
  108. env:
  109. LDFLAGS: -static-libgcc -static-libstdc++
  110. run: |
  111. make -j $(nproc)
  112. - name: Set sha8
  113. id: slug
  114. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  115. - uses: actions/upload-artifact@v2
  116. with:
  117. name: ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  118. path: |
  119. bin/*
  120. macos-universal:
  121. runs-on: macos-10.15
  122. steps:
  123. - uses: actions/checkout@v2
  124. with:
  125. submodules: recursive
  126. - name: Fix up Xcode
  127. run: |
  128. sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
  129. sudo xcode-select -s "/Applications/Xcode_12.3.app"
  130. - name: Build macOS universal
  131. env:
  132. CFLAGS: -arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2
  133. CXXFLAGS: -arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2
  134. LDFLAGS: -arch x86_64 -arch arm64 -mmacosx-version-min=10.12
  135. run: |
  136. make NOOPT=true -j $(sysctl -n hw.logicalcpu)
  137. ./utils/package-osx-bundles.sh
  138. - name: Set sha8
  139. id: slug
  140. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  141. - uses: actions/upload-artifact@v2
  142. with:
  143. name: ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  144. path: |
  145. *-macOS.pkg
  146. bin/*
  147. !bin/*-ladspa.dylib
  148. !bin/*-dssi.dylib
  149. !bin/lv2
  150. !bin/vst2
  151. win32:
  152. runs-on: ubuntu-20.04
  153. steps:
  154. - uses: actions/checkout@v2
  155. with:
  156. submodules: recursive
  157. - name: Set up dependencies
  158. run: |
  159. sudo dpkg --add-architecture i386
  160. sudo apt-get update -qq
  161. sudo apt-get install -yq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386
  162. - name: Build win32 cross-compiled
  163. env:
  164. CC: i686-w64-mingw32-gcc
  165. CXX: i686-w64-mingw32-g++
  166. EXE_WRAPPER: wine
  167. PKG_CONFIG: "false"
  168. WINEDEBUG: "-all"
  169. run: |
  170. make -j $(nproc)
  171. - name: Set sha8
  172. id: slug
  173. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  174. - uses: actions/upload-artifact@v2
  175. with:
  176. name: ${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  177. path: |
  178. bin/*
  179. !bin/*-ladspa.dll
  180. !bin/*-dssi.dll
  181. win64:
  182. runs-on: ubuntu-20.04
  183. steps:
  184. - uses: actions/checkout@v2
  185. with:
  186. submodules: recursive
  187. - name: Set up dependencies
  188. run: |
  189. sudo apt-get install -yq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
  190. - name: Build win64 cross-compiled
  191. env:
  192. CC: x86_64-w64-mingw32-gcc
  193. CXX: x86_64-w64-mingw32-g++
  194. EXE_WRAPPER: wine
  195. PKG_CONFIG: "false"
  196. WINEDEBUG: "-all"
  197. run: |
  198. make -j $(nproc)
  199. - name: Set sha8
  200. id: slug
  201. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  202. - uses: actions/upload-artifact@v2
  203. with:
  204. name: ${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  205. path: |
  206. bin/*
  207. !bin/*-ladspa.dll
  208. !bin/*-dssi.dll