From 0b254b547620ef131ba8e7907146c05eccd21658 Mon Sep 17 00:00:00 2001 From: Bloodbat Date: Sat, 12 Oct 2024 13:44:45 -0600 Subject: [PATCH] Add: main tree manual builds action. --- .github/workflows/manual_builds.yml | 98 +++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/manual_builds.yml diff --git a/.github/workflows/manual_builds.yml b/.github/workflows/manual_builds.yml new file mode 100644 index 00000000..c07ee755 --- /dev/null +++ b/.github/workflows/manual_builds.yml @@ -0,0 +1,98 @@ +name: Manual VCV Rack Plugin Build + +on: + workflow_dispatch: + +env: + rack-sdk-version: latest + rack-plugin-toolchain-dir: /home/build/rack-plugin-toolchain + +defaults: + run: + shell: bash + +jobs: + + modify-plugin-version: + name: Modify plugin version + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/cache@v4 + id: plugin-version-cache + with: + path: plugin.json + key: ${{ github.sha }}-${{ github.run_id }} + - run: | + gitrev=`git rev-parse --short HEAD` + pluginversion=`jq -r '.version' plugin.json` + echo "Set plugin version from $pluginversion to $pluginversion-$gitrev" + cat <<< `jq --arg VERSION "$pluginversion-$gitrev" '.version=$VERSION' plugin.json` > plugin.json + # only modify plugin version if no tag was created + if: "! startsWith(github.ref, 'refs/tags/v')" + + build: + name: ${{ matrix.platform }} + needs: modify-plugin-version + runs-on: ubuntu-latest + container: + image: ghcr.io/qno/rack-plugin-toolchain-win-linux + options: --user root + strategy: + matrix: + platform: [win-x64, lin-x64] + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - uses: actions/cache@v4 + id: plugin-version-cache + with: + path: plugin.json + key: ${{ github.sha }}-${{ github.run_id }} + - name: Build plugin + run: | + export PLUGIN_DIR=$GITHUB_WORKSPACE + pushd ${{ env.rack-plugin-toolchain-dir }} + make plugin-build-${{ matrix.platform }} + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + path: ${{ env.rack-plugin-toolchain-dir }}/plugin-build + name: ${{ matrix.platform }} + + build-mac: + name: mac + needs: modify-plugin-version + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + platform: [x64, arm64] + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - uses: actions/cache@v4 + id: plugin-version-cache + with: + path: plugin.json + key: ${{ github.sha }}-${{ github.run_id }} + - name: Get Rack-SDK + run: | + pushd $HOME + wget -O Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-mac-x64+arm64.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 + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + path: dist/*.vcvplugin + name: mac-${{ matrix.platform }} \ No newline at end of file