rsav-compile #15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/ |