diff --git a/.github/workflows/build-plugin.yml b/.github/workflows/build-plugin.yml index a9ce140..6fe5986 100644 --- a/.github/workflows/build-plugin.yml +++ b/.github/workflows/build-plugin.yml @@ -2,63 +2,76 @@ name: Build VCV Rack Plugin on: [push, pull_request] env: - rack-sdk-version: 2.2.0 + rack-sdk-version: 2.2.1 + rack-plugin-toolchain-dir: /home/build/rack-plugin-toolchain defaults: run: shell: bash -jobs: +jobs: build: - name: ${{ matrix.config.os }} - runs-on: ${{ matrix.config.os }} + name: ${{ matrix.platform }} + runs-on: ubuntu-latest + container: + image: ghcr.io/qno/rack-plugin-toolchain-win-linux + options: --user root strategy: + fail-fast: false matrix: - config: - - os: ubuntu-latest - arch: lin-x64 - compiler: cc - install-dependencies: | - sudo apt-get update && sudo apt-get install -y libglu-dev - - os: macos-latest - arch: mac-x64 - compiler: cc - install-dependencies: | - brew install mesa - - os: windows-latest - arch: win-x64 - compiler: gcc - install-dependencies: | - choco install --no-progress -y zip + platform: [win-x64, linux-x64] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: - submodules: true - - name: Install Rack SDK + submodules: recursive + - name: Build plugin run: | - curl -o sdk.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-${{ matrix.config.arch }}.zip - unzip sdk.zip - - name: Install Dependencies + export PLUGIN_DIR=$GITHUB_WORKSPACE + pushd ${{ env.rack-plugin-toolchain-dir }} + make plugin-build-${{ matrix.platform }} + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + path: ${{ env.rack-plugin-toolchain-dir }}/plugin-build + name: ${{ matrix.platform }} + + build-mac: + name: mac + runs-on: macos-12 + strategy: + fail-fast: false + matrix: + platform: [x64, arm64] + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - name: Get Rack-SDK run: | - ${{ matrix.config.install-dependencies }} - - name: Build - env: - RACK_DIR: Rack-SDK - CC: ${{ matrix.config.compiler }} + pushd $HOME + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-mac-${{ matrix.platform }}.zip + unzip Rack-SDK.zip + - name: Build plugin run: | + CROSS_COMPILE_TARGET_x64=x86_64-apple-darwin + CROSS_COMPILE_TARGET_arm64=arm64-apple-darwin + export RACK_DIR=$HOME/Rack-SDK + export CROSS_COMPILE=$CROSS_COMPILE_TARGET_${{ matrix.platform }} + make dep make dist + echo "Plugin architecture '$(lipo -archs plugin.dylib)'" - name: Upload artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: - path: dist - name: ${{ matrix.config.arch }}.zip + path: dist/*.vcvplugin + name: mac-${{ matrix.platform }} publish: name: Publish plugin runs-on: ubuntu-18.04 - needs: build + needs: [build, build-mac] steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: path: _artifacts - uses: "marvinpinto/action-automatic-releases@latest"