Skip to content

rsav-compile

rsav-compile #15

Workflow file for this run

name: rsav-compile
on: [workflow_dispatch]
env:
DISPLAY: :0 # linux pluginval needs this
# BUILD_TYPE: Release
defaults:
run:
shell: bash
jobs:
build:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false # show all errors for each platform (vs. cancel jobs on error)
matrix:
include:
- name: Linux
os: ubuntu-latest
pluginval-binary: ./pluginval
# extra-flags: -G Ninja
# - name: macOS
# os: macos-latest
# pluginval-binary: pluginval.app/Contents/MacOS/pluginval
# # extra-flags: -G Ninja -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
# - name: Windows
# os: windows-latest
# pluginval-binary: ./pluginval.exe
# # os: [macos-latest, ubuntu-latest, windows-latest]
steps:
# Use clang on Linux so we don't introduce a 3rd compiler (Windows and macOS use MSVC and Clang)
- name: Set up Clang
if: runner.os == 'Linux'
uses: egor-tensin/setup-clang@v1
# This also starts up our "fake" display (Xvfb), needed for pluginval
- name: Install JUCE's Linux Deps
if: runner.os == 'Linux'
# Official list of Linux deps: https://github.com/juce-framework/JUCE/blob/develop/docs/Linux%20Dependencies.md
run: |
sudo apt-get update && sudo apt install libasound2-dev libjack-jackd2-dev \
ladspa-sdk \
libcurl4-openssl-dev \
libfreetype-dev libfontconfig1-dev \
libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev \
libwebkit2gtk-4.1-dev \
libglu1-mesa-dev mesa-common-dev
sudo /usr/bin/Xvfb $DISPLAY &
- name: "Preparation"
uses: actions/checkout@v2
- name: "(JUCE) Clone Repository"
uses: actions/checkout@v2
with:
repository: juce-framework/JUCE
path: ${{runner.workspace}}/RSAlgorithmicVerb/JUCE
- name: "Create Build Environment"
working-directory: ${{runner.workspace}}/RSAlgorithmicVerb
run: cmake -S . -B build
- name: "Build"
working-directory: ${{runner.workspace}}/RSAlgorithmicVerb
run: cmake --build build --config Release
- name: Read in .env from CMake # see GitHubENV.cmake
run: |
cat .env # show us the config
cat .env >> $GITHUB_ENV # pull in our PRODUCT_NAME, etc
- name: Set additional env vars for next steps
run: |
ARTIFACTS_PATH=${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_artefacts/${{ env.BUILD_TYPE }}
echo "ARTIFACTS_PATH=$ARTIFACTS_PATH" >> $GITHUB_ENV
echo "VST3_PATH=$ARTIFACTS_PATH/VST3/${{ env.PRODUCT_NAME }}.vst3" >> $GITHUB_ENV
echo "AU_PATH=$ARTIFACTS_PATH/AU/${{ env.PRODUCT_NAME }}.component" >> $GITHUB_ENV
echo "AUV3_PATH=$ARTIFACTS_PATH/AUv3/${{ env.PRODUCT_NAME }}.appex" >> $GITHUB_ENV
echo "CLAP_PATH=$ARTIFACTS_PATH/CLAP/${{ env.PRODUCT_NAME }}.clap" >> $GITHUB_ENV
echo "STANDALONE_PATH=$ARTIFACTS_PATH/Standalone/${{ env.PRODUCT_NAME }}.app" >> $GITHUB_ENV
echo "ARTIFACT_NAME=${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-${{ matrix.name }}" >> $GITHUB_ENV
- name: Pluginval
run: |
curl -LO "https://github.com/Tracktion/pluginval/releases/download/v1.0.3/pluginval_${{ matrix.name }}.zip"
7z x pluginval_${{ matrix.name }}.zip
${{ matrix.pluginval-binary }} --strictness-level 10 --verbose --validate "${{ env.VST3_PATH }}"
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: "RSAlgorithmicVerb_${{ runner.os }}"
path: ${{runner.workspace}}/RSAlgorithmicVerb/build/RSAlgorithmicVerb_artefacts/