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.

70 lines
2.4KB

  1. name: build
  2. on: [push, pull_request]
  3. env:
  4. CACHE_VERSION: 6
  5. DEBIAN_FRONTEND: noninteractive
  6. HOMEBREW_NO_AUTO_UPDATE: 1
  7. PAWPAW_SKIP_LTO: 1
  8. WITH_LTO: false
  9. jobs:
  10. windows:
  11. strategy:
  12. matrix:
  13. target: [win32, win64]
  14. runs-on: ubuntu-22.04
  15. steps:
  16. - uses: actions/checkout@v3
  17. with:
  18. submodules: recursive
  19. - name: Set up cache
  20. uses: actions/cache@v3
  21. with:
  22. path: |
  23. ~/PawPawBuilds
  24. key: ${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  25. - name: Fix GitHub's mess
  26. run: |
  27. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  28. sudo apt-get update -qq
  29. sudo apt-get install -yqq --allow-downgrades libgd3/jammy
  30. sudo apt-get purge libmono* moby* mono* msbuild* php* libgdiplus libpcre2* libpq5 nuget
  31. dpkg -l
  32. sudo dpkg --add-architecture i386
  33. sudo apt-get update -qq
  34. sudo apt-get install libicu70:i386 libc6:i386 libgcc-s1:i386 libstdc++6:i386 --allow-downgrades
  35. - name: Set up dependencies (win32)
  36. if: ${{ matrix.target == 'win32' }}
  37. run: |
  38. sudo dpkg --add-architecture i386
  39. sudo apt-get update -qq
  40. sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 gperf mingw-w64 wine-stable
  41. - name: Set up dependencies (win64)
  42. if: ${{ matrix.target == 'win64' }}
  43. run: |
  44. sudo dpkg --add-architecture i386
  45. sudo apt-get update -qq
  46. sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 gperf mingw-w64 wine-stable
  47. - name: Build extra dependencies
  48. run: |
  49. git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
  50. ./PawPaw/bootstrap-cardinal.sh ${{ matrix.target }}
  51. - name: Build cross-compiled
  52. run: |
  53. source PawPaw/local.env ${{ matrix.target }}
  54. make features
  55. make CARLA_EXTRA_TARGETS=true NOOPT=true -j $(nproc)
  56. - name: Set sha8
  57. id: slug
  58. run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
  59. - uses: actions/upload-artifact@v3
  60. with:
  61. name: ${{ github.event.repository.name }}-${{ matrix.target }}-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
  62. path: |
  63. bin/*
  64. !bin/*-ladspa.dll
  65. !bin/*-dssi.dll