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.

195 lines
6.5KB

  1. name: build
  2. on: [push, pull_request]
  3. env:
  4. CACHE_VERSION: 2
  5. DEBIAN_FRONTEND: noninteractive
  6. PAWPAW_CI: 1
  7. PAWPAW_SKIP_LTO: 1
  8. PAWPAW_SKIP_FFTW: 1
  9. PAWPAW_SKIP_GLIB: 1
  10. PAWPAW_SKIP_LV2: 1
  11. PAWPAW_SKIP_SAMPLERATE: 1
  12. PAWPAW_SKIP_TESTS: 1
  13. WITH_LTO: false
  14. jobs:
  15. linux:
  16. strategy:
  17. matrix:
  18. target: [aarch64, armhf, i686, riscv64, x86_64]
  19. runs-on: ubuntu-latest
  20. container:
  21. image: ubuntu:20.04
  22. steps:
  23. - name: Install git
  24. run: |
  25. apt-get update -qq && apt-get install -yqq --no-install-recommends ca-certificates curl git openssl
  26. curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git_2.34.1-1ubuntu1~bpo20.04.1~ppa1_amd64.deb
  27. curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git-man_2.34.1-1ubuntu1~bpo20.04.1~ppa1_all.deb
  28. dpkg -i *.deb
  29. rm *.deb
  30. - uses: actions/checkout@v4
  31. with:
  32. submodules: recursive
  33. - name: Set up cache
  34. uses: actions/cache@v4
  35. with:
  36. path: |
  37. ~/PawPawBuilds
  38. key: linux-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  39. - name: Set up dependencies
  40. run: |
  41. git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
  42. ./PawPaw/.github/workflows/bootstrap-deps.sh linux-${{ matrix.target }}
  43. - name: Set up dependencies x86_64 extra
  44. if: ${{ matrix.target == 'x86_64' }}
  45. run: |
  46. dpkg --add-architecture i386
  47. apt-get update -qq
  48. apt-get install -yqq g++-multilib libx11-dev:i386
  49. apt-get install -yqq binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64-i686 g++-mingw-w64-x86-64 mingw-w64 wine-stable wine64-tools
  50. - name: Build extra dependencies
  51. run: |
  52. ./PawPaw/bootstrap-cardinal.sh linux-${{ matrix.target }} && ./PawPaw/.cleanup.sh linux-${{ matrix.target }}
  53. - name: Build linux
  54. shell: bash
  55. run: |
  56. source PawPaw/local.env linux-${{ matrix.target }}
  57. make features
  58. make NOOPT=true -j $(nproc)
  59. - name: Build linux x86_64 extra (part1)
  60. if: ${{ matrix.target == 'x86_64' }}
  61. shell: bash
  62. run: |
  63. source PawPaw/local.env linux-${{ matrix.target }}
  64. make NOOPT=true all extra-posix32 extra-win32 extra-win64 extra-wine64 -j $(nproc)
  65. - name: Build linux x86_64 extra (part2)
  66. if: ${{ matrix.target == 'x86_64' }}
  67. shell: bash
  68. run: |
  69. apt-get install -yqq libwine-dev:i386
  70. source PawPaw/local.env linux
  71. make NOOPT=true extra-wine32 -j $(nproc)
  72. make CARLA_EXTRA_TARGETS=true NOOPT=true -j $(nproc)
  73. - name: Set sha8
  74. run: |
  75. echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV
  76. - uses: actions/upload-artifact@v4
  77. with:
  78. name: ${{ github.event.repository.name }}-linux-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }}
  79. path: |
  80. bin/*
  81. !bin/Ildaeil
  82. macos:
  83. strategy:
  84. matrix:
  85. target: [intel, universal]
  86. runs-on: macos-14
  87. steps:
  88. - uses: actions/checkout@v4
  89. with:
  90. submodules: recursive
  91. - name: Set up cache
  92. uses: actions/cache@v4
  93. with:
  94. path: |
  95. ~/PawPawBuilds
  96. key: macos-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  97. - name: Set up dependencies
  98. run: |
  99. brew uninstall --ignore-dependencies -f cmake
  100. git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
  101. ./PawPaw/.github/workflows/bootstrap-deps.sh macos-${{ matrix.target }}
  102. - name: Build extra dependencies
  103. run: |
  104. ./PawPaw/bootstrap-cardinal.sh macos-${{ matrix.target }} && ./PawPaw/.cleanup.sh macos-${{ matrix.target }}
  105. - name: Build macOS
  106. run: |
  107. source PawPaw/local.env macos-${{ matrix.target }}
  108. make features
  109. make NOOPT=true -j $(sysctl -n hw.logicalcpu)
  110. - name: Pack macOS
  111. run: |
  112. source PawPaw/local.env macos-${{ matrix.target }}
  113. ./dpf/utils/package-osx-bundles.sh
  114. - name: Set sha8
  115. run: |
  116. echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV
  117. - uses: actions/upload-artifact@v4
  118. with:
  119. name: ${{ github.event.repository.name }}-macOS-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }}
  120. path: |
  121. *-macOS.pkg
  122. bin/*
  123. !bin/pkg
  124. !bin/*.clap
  125. !bin/*.component
  126. !bin/*.lv2
  127. !bin/*.vst
  128. !bin/*.vst3
  129. windows:
  130. strategy:
  131. matrix:
  132. target: [win32, win64]
  133. runs-on: ubuntu-22.04
  134. steps:
  135. - uses: actions/checkout@v4
  136. with:
  137. submodules: recursive
  138. - name: Set up cache
  139. uses: actions/cache@v4
  140. with:
  141. path: |
  142. ~/PawPawBuilds
  143. key: ${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  144. - name: Fix GitHub's mess
  145. run: |
  146. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  147. sudo dpkg --add-architecture i386
  148. sudo apt-get update -qq
  149. - name: Set up dependencies
  150. run: |
  151. git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
  152. ./PawPaw/.github/workflows/bootstrap-deps.sh ${{ matrix.target }}
  153. - name: Build extra dependencies
  154. run: |
  155. ./PawPaw/bootstrap-cardinal.sh ${{ matrix.target }} && ./PawPaw/.cleanup.sh ${{ matrix.target }}
  156. - name: Build cross-compiled
  157. run: |
  158. source PawPaw/local.env ${{ matrix.target }}
  159. make features
  160. make CARLA_EXTRA_TARGETS=true NOOPT=true -j $(nproc)
  161. - name: Set sha8
  162. run: |
  163. echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV
  164. - uses: actions/upload-artifact@v4
  165. with:
  166. name: ${{ github.event.repository.name }}-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }}
  167. path: |
  168. bin/*
  169. !bin/*.exe
  170. pluginval:
  171. runs-on: ubuntu-22.04
  172. steps:
  173. - uses: actions/checkout@v4
  174. with:
  175. submodules: recursive
  176. - uses: distrho/dpf-makefile-action@v1
  177. with:
  178. target: pluginval
  179. source:
  180. runs-on: ubuntu-22.04
  181. steps:
  182. - uses: actions/checkout@v4
  183. with:
  184. submodules: recursive
  185. - uses: distrho/dpf-makefile-action@v1
  186. with:
  187. target: source