Audio plugin host https://kx.studio/carla
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.

184 lines
6.4KB

  1. name: release
  2. on: [push, pull_request]
  3. env:
  4. CACHE_VERSION: 1
  5. PAWPAW_SKIP_LTO: 1
  6. PAWPAW_VERSION: cd7b760d6a32ecad263b112c12be8a306ed1e89c
  7. jobs:
  8. # macOS native universal build
  9. macos_universal:
  10. runs-on: macos-11
  11. steps:
  12. - uses: actions/checkout@v3
  13. with:
  14. submodules: recursive
  15. - name: Set up cache
  16. uses: actions/cache@v3
  17. with:
  18. path: |
  19. ~/PawPawBuilds
  20. key: macos-universal-v${{ env.CACHE_VERSION }}
  21. - name: Set up dependencies
  22. run: |
  23. brew install cmake jq meson
  24. - name: Bootstrap macOS universal
  25. shell: bash
  26. run: |
  27. git clone https://github.com/DISTRHO/PawPaw.git
  28. git -C PawPaw checkout ${{ env.PAWPAW_VERSION }}
  29. ./PawPaw/bootstrap-carla.sh macos-universal && ./PawPaw/.cleanup.sh macos-universal
  30. - name: Build macOS universal
  31. shell: bash
  32. run: |
  33. source PawPaw/local.env macos-universal
  34. make features
  35. make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS}
  36. make dist ${MAKE_ARGS} TESTING=true -j 1
  37. make dist ${MAKE_ARGS} TESTING=true -j 1
  38. make dist ${MAKE_ARGS} TESTING=true -j 1
  39. make dist ${MAKE_ARGS} TESTING=true -j 1
  40. make dist ${MAKE_ARGS} -j 1
  41. - uses: actions/upload-artifact@v3
  42. with:
  43. name: macOS dmg
  44. path: ./*.dmg
  45. - uses: softprops/action-gh-release@v1
  46. if: startsWith(github.ref, 'refs/tags/')
  47. with:
  48. tag_name: ${{ github.ref_name }}
  49. name: ${{ github.ref_name }}
  50. draft: false
  51. prerelease: false
  52. files: |
  53. ./*.dmg
  54. # linux with win32 cross-compilation
  55. win32:
  56. runs-on: ubuntu-22.04
  57. steps:
  58. - uses: actions/checkout@v3
  59. with:
  60. submodules: recursive
  61. - name: Set up cache
  62. uses: actions/cache@v3
  63. with:
  64. path: |
  65. ~/PawPawBuilds
  66. key: win32-v${{ env.CACHE_VERSION }}
  67. - name: Restore debian packages cache
  68. run: |
  69. if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  70. sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  71. fi
  72. - name: Fix GitHub's mess
  73. run: |
  74. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  75. sudo dpkg --add-architecture i386
  76. sudo apt-get update -qq
  77. sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386
  78. - name: Set up dependencies
  79. run: |
  80. sudo apt-get install -y build-essential curl cmake jq meson mingw-w64 gperf qttools5-dev qttools5-dev-tools xvfb \
  81. binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable
  82. - name: Cache debian packages
  83. run: |
  84. mkdir -p ~/PawPawBuilds/debs
  85. sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  86. - name: Bootstrap win32 cross-compiled
  87. shell: bash
  88. run: |
  89. git clone https://github.com/DISTRHO/PawPaw.git
  90. git -C PawPaw checkout ${{ env.PAWPAW_VERSION }}
  91. ./PawPaw/bootstrap-carla.sh win32 && ./PawPaw/.cleanup.sh win32
  92. - name: Build win32 cross-compiled
  93. shell: bash
  94. run: |
  95. source PawPaw/local.env win32
  96. make features
  97. make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS}
  98. make dist ${MAKE_ARGS} TESTING=true -j 1
  99. make dist ${MAKE_ARGS} TESTING=true -j 1
  100. make dist ${MAKE_ARGS} TESTING=true -j 1
  101. make dist ${MAKE_ARGS} TESTING=true -j 1
  102. make dist ${MAKE_ARGS} -j 1
  103. - uses: actions/upload-artifact@v3
  104. with:
  105. name: win32 zip
  106. path: ./*.zip
  107. - uses: softprops/action-gh-release@v1
  108. if: startsWith(github.ref, 'refs/tags/')
  109. with:
  110. tag_name: ${{ github.ref_name }}
  111. name: ${{ github.ref_name }}
  112. draft: false
  113. prerelease: false
  114. files: |
  115. ./*.zip
  116. # linux with win64 cross-compilation
  117. win64:
  118. runs-on: ubuntu-22.04
  119. steps:
  120. - uses: actions/checkout@v3
  121. with:
  122. submodules: recursive
  123. - name: Set up cache
  124. uses: actions/cache@v3
  125. with:
  126. path: |
  127. ~/PawPawBuilds
  128. key: win64-v${{ env.CACHE_VERSION }}
  129. - name: Restore debian packages cache
  130. run: |
  131. if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  132. sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  133. fi
  134. - name: Fix GitHub's mess
  135. run: |
  136. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  137. sudo dpkg --add-architecture i386
  138. sudo apt-get update -qq
  139. sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386
  140. - name: Set up dependencies
  141. run: |
  142. sudo apt-get install -y build-essential curl cmake jq meson mingw-w64 gperf qttools5-dev qttools5-dev-tools xvfb \
  143. binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
  144. - name: Cache debian packages
  145. run: |
  146. mkdir -p ~/PawPawBuilds/debs
  147. sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  148. - name: Bootstrap win64 cross-compiled
  149. shell: bash
  150. run: |
  151. git clone https://github.com/DISTRHO/PawPaw.git
  152. git -C PawPaw checkout ${{ env.PAWPAW_VERSION }}
  153. ./PawPaw/bootstrap-carla.sh win64 && ./PawPaw/.cleanup.sh win64
  154. - name: Build win64 cross-compiled
  155. shell: bash
  156. run: |
  157. source PawPaw/local.env win64
  158. make features
  159. make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS}
  160. make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} win32r
  161. make dist ${MAKE_ARGS} TESTING=true -j 1
  162. make dist ${MAKE_ARGS} TESTING=true -j 1
  163. make dist ${MAKE_ARGS} TESTING=true -j 1
  164. make dist ${MAKE_ARGS} TESTING=true -j 1
  165. make dist ${MAKE_ARGS} -j 1
  166. - uses: actions/upload-artifact@v3
  167. with:
  168. name: win64 zip
  169. path: ./*.zip
  170. - uses: softprops/action-gh-release@v1
  171. if: startsWith(github.ref, 'refs/tags/')
  172. with:
  173. tag_name: ${{ github.ref_name }}
  174. name: ${{ github.ref_name }}
  175. draft: false
  176. prerelease: false
  177. files: |
  178. ./*.zip