computerscare-vcv-modules

computerscare modules for VCV Rack
Log | Files | Refs

commit 32d03e3caed83a847e594649a51579488856a178
parent 8b26e84e5a8b6086fb03272cdc6901f3eda902cd
Author: Adam M <aemalone@gmail.com>
Date:   Fri, 12 Nov 2021 16:50:27 -0600

Merge branch 'workflow' into repair

Diffstat:
A.github/workflows/build-all.yml | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 115 insertions(+), 0 deletions(-)

diff --git a/.github/workflows/build-all.yml b/.github/workflows/build-all.yml @@ -0,0 +1,115 @@ +name: Build v2 +on: [push, pull_request] + +# https://vcvrack.com/downloads/Rack-SDK-2.git.219bbaf1-lin.zip + +env: + rack-sdk-version: 2.git.219bbaf1 + +defaults: + run: + shell: bash + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + matrix: + config: + - { + name: Linux, + os: ubuntu-latest, + prepare-os: sudo apt install -y libglu-dev + } + - { + name: MacOS, + os: macos-latest, + prepare-os: "" + } + - { + name: Windows, + os: windows-latest, + prepare-os: export CC=gcc + } + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Patch plugin.mk, use 7zip on Windows + if: runner.os == 'Windows' + run: | + pushd $HOME + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-win.zip + unzip Rack-SDK.zip + sed -i 's/zip -q -9 -r/7z a -tzip -mx=9/' $HOME/Rack-SDK/plugin.mk + - name: Get Mac SDK + if: runner.os == 'MacOS' + run: | + pushd $HOME + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-mac.zip + unzip Rack-SDK.zip + - name: Get Linux SDK + if: runner.os == 'Linux' + run: | + pushd $HOME + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-lin.zip + unzip Rack-SDK.zip + - name: Modify plugin version + # only modify plugin version if no tag was created + if: "! startsWith(github.ref, 'refs/tags/v')" + 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 + - name: Build plugin + run: | + ${{ matrix.config.prepare-os }} + export RACK_DIR=$HOME/Rack-SDK + make -j dep + make -j dist + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + path: dist + name: ${{ matrix.config.name }} + + publish: + name: Publish plugin + # only create a release if a tag was created that is called e.g. v1.2.3 + # see also https://vcvrack.com/manual/Manifest#version + # if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v2 + - uses: FranzDiebold/github-env-vars-action@v1.2.1 + - name: Check if plugin version matches tag + run: | + pluginversion=`jq -r '.version' plugin.json` + if [ "v$pluginversion" != "${{ env.GITHUB_REF_NAME }}" ]; then + echo "Plugin version from plugin.json 'v$pluginversion' doesn't match with tag version '${{ env.GITHUB_REF_NAME }}'" + exit 1 + fi + - name: Create Release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + body: | + ${{ env.GITHUB_REPOSITORY_NAME }} VCV Rack Plugin ${{ env.GITHUB_REF_NAME }} + draft: false + prerelease: false + - uses: actions/download-artifact@v2 + with: + path: _artifacts + - name: Upload release assets + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: _artifacts/**/*.zip + tag: ${{ github.ref }} + file_glob: true