name: release on: [push, pull_request] env: CACHE_VERSION: 1 DEBIAN_FRONTEND: noninteractive HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 PAWPAW_SKIP_LTO: 1 PAWPAW_SKIP_TESTS: 1 PAWPAW_VERSION: 9534e2b4f9bafc993e05fada89b824f3a2176708 jobs: # macOS native universal build macos_universal: runs-on: macos-11 steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Set up cache uses: actions/cache@v3 with: path: | ~/PawPawBuilds key: macos-universal-v${{ env.CACHE_VERSION }} - name: Set up dependencies run: | brew install cmake jq meson - name: Bootstrap macOS universal shell: bash run: | git clone https://github.com/DISTRHO/PawPaw.git git -C PawPaw checkout ${{ env.PAWPAW_VERSION }} ./PawPaw/.github/workflows/bootstrap-deps.sh macos-universal ./PawPaw/bootstrap-carla.sh macos-universal && ./PawPaw/.cleanup.sh macos-universal - name: Build macOS universal shell: bash run: | source PawPaw/local.env macos-universal make features make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} -j 1 - uses: actions/upload-artifact@v3 with: name: macOS dmg path: ./*.dmg - uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: tag_name: ${{ github.ref_name }} name: ${{ github.ref_name }} draft: false prerelease: false files: | ./*.dmg # linux with win32 cross-compilation win32: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Set up cache uses: actions/cache@v3 with: path: | ~/PawPawBuilds key: win32-v${{ env.CACHE_VERSION }} - name: Restore debian packages cache run: | if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ fi - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list sudo dpkg --add-architecture i386 sudo apt-get update -qq sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 - name: Set up dependencies run: | sudo apt-get install -y build-essential curl cmake jq meson mingw-w64 gperf qttools5-dev qttools5-dev-tools xvfb \ binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable - name: Cache debian packages run: | mkdir -p ~/PawPawBuilds/debs sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ - name: Bootstrap win32 cross-compiled shell: bash run: | git clone https://github.com/DISTRHO/PawPaw.git git -C PawPaw checkout ${{ env.PAWPAW_VERSION }} ./PawPaw/.github/workflows/bootstrap-deps.sh win32 ./PawPaw/bootstrap-carla.sh win32 && ./PawPaw/.cleanup.sh win32 - name: Build win32 cross-compiled shell: bash run: | source PawPaw/local.env win32 make features make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} -j 1 - uses: actions/upload-artifact@v3 with: name: win32 zip path: ./*.zip - uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: tag_name: ${{ github.ref_name }} name: ${{ github.ref_name }} draft: false prerelease: false files: | ./*.zip # linux with win64 cross-compilation win64: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Set up cache uses: actions/cache@v3 with: path: | ~/PawPawBuilds key: win64-v${{ env.CACHE_VERSION }} - name: Restore debian packages cache run: | if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ fi - name: Fix GitHub's mess run: | sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list sudo dpkg --add-architecture i386 sudo apt-get update -qq sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 - name: Set up dependencies run: | sudo apt-get install -y build-essential curl cmake jq meson mingw-w64 gperf qttools5-dev qttools5-dev-tools xvfb \ binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable - name: Cache debian packages run: | mkdir -p ~/PawPawBuilds/debs sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ - name: Bootstrap win64 cross-compiled shell: bash run: | git clone https://github.com/DISTRHO/PawPaw.git git -C PawPaw checkout ${{ env.PAWPAW_VERSION }} ./PawPaw/.github/workflows/bootstrap-deps.sh win64 ./PawPaw/bootstrap-carla.sh win64 && ./PawPaw/.cleanup.sh win64 - name: Build win64 cross-compiled shell: bash run: | source PawPaw/local.env win64 make features make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} win32r make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} TESTING=true -j 1 make dist ${MAKE_ARGS} -j 1 - uses: actions/upload-artifact@v3 with: name: win64 zip path: ./*.zip - uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: tag_name: ${{ github.ref_name }} name: ${{ github.ref_name }} draft: false prerelease: false files: | ./*.zip