diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 13fe5f9a..0703b66e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -99,6 +99,44 @@ jobs: name: ${{ env.ARCHIVE_NAME }} path: ${{ env.ARCHIVE_NAME }} + # The same as `build-bionic`, but for a 32-bit only version of yabridge. We + # don't plan on distributing this, but we'll just have this available for AV + # Linux. We currently don't do 32-bit builds of yabridgectl though. + build-32-bit: + name: Build on Ubuntu 18.04 (32-bit build) + runs-on: ubuntu-latest + container: robbert/docker-yabridge:bionic + outputs: + artifact-name: ${{ env.ARCHIVE_NAME }} + steps: + - uses: actions/checkout@v2 + - name: Fetch all git history + run: git fetch --force --prune --tags --unshallow + - name: Determine build archive name + run: | + echo "ARCHIVE_NAME=yabridge-$(git describe --always)-ubuntu-18.04-32bit.tar.gz" >> "$GITHUB_ENV" + - name: Build the binaries + run: | + mkdir -p /tmp/prefix + export WINEPREFIX=/tmp/prefix + + # Statically link to libstdc++ on Ubuntu 18.04, and also target a + # 32-bit OS + meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dwith-static-boost=true -Dwith-bitbridge=true -Dcpp_link_args='-mwindows -static-libstdc++' -Dbuild.cpp_args='-m32' -Dbuild.cpp_link_args='-m32 -static-libstdc++' + ninja -C build + - name: Create an archive for the binaries + run: | + mkdir yabridge + cp build/libyabridge-{vst2,vst3}.so build/yabridge-{host,group}{,-32}.exe{,.so} yabridge + cp CHANGELOG.md README.md yabridge + + tar -caf "$ARCHIVE_NAME" yabridge + rm -rf yabridge + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.ARCHIVE_NAME }} + path: ${{ env.ARCHIVE_NAME }} + build-yabridgectl: name: Build yabridgectl runs-on: ubuntu-18.04