Skip to content

Upgrade workflow

Upgrade workflow #43

Workflow file for this run

name: Audio Development
on:
pull_request:
branches:
- main
jobs:
build:
name: Build plugins
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Xcode
if: matrix.os == 'macos-latest'
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest
- name: Install dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt install graphviz libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev
- name: Set CMake default generator
if: matrix.os == 'macos-latest'
run: echo "CMAKE_GENERATOR=Xcode" >> $GITHUB_ENV
- name: Build
run: cmake --workflow --preset Release
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-${{matrix.os}}
path: |
CMakePresets.json
build/**/CTestTestfile.cmake
build/**/CMakeCache.txt
build/**/**/*_artefacts/**
build/_deps/pluginval-src
!build/_deps/juce-*/
!**/*_SharedCode.*
test:
name: Test
needs: build
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: build-${{matrix.os}}
- name: Change permissions
if: matrix.os != 'windows-latest'
run: chmod -R +x build/_deps/pluginval-src/
- name: Register AU plugins
if: matrix.os == 'macos-latest'
run: |
mkdir -p ~/Library/Audio/Plug-Ins/Components
find build -name "*.component" -exec cp -r {} ~/Library/Audio/Plug-Ins/Components/ \;
pgrep -x AudioComponentRegistrar >/dev/null && killall -9 AudioComponentRegistrar; echo "killed AudioComponentRegistrar" || echo "AudioComponentRegistrar Process not found"
shell: bash
- name: Run Tests
run: ctest --preset Release
generate-docs:
name: Verify Doxygen documentation generation
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate documentation
run: cmake --workflow --preset Docs