Unable to build JUCE project from the GitHub Release assets

I’m trying to build a JUCE project on GHA using the provided .zip assets on the JUCE GitHub Releases, however the project fails to build due to juce_vst3_helper: No such file or directory.

Unless I’m doing something silly, it seems a pre-build of the VST3 Helper should be included in those assets, and/or bundled in the pre-built Projucer?

projucer-build:
  runs-on: macos-latest

  steps:
    - uses: actions/checkout@v4

    - name: Download Projucer
      uses: robinraju/release-downloader@v1.11
      with:
        extract: true
        fileName: "*-osx.zip"
        latest: true
        out-file-path: ${{ runner.temp }}
        repository: juce-framework/JUCE

    - name: Build projects
      run: |
        unzip -q ${{ runner.temp }}/juce*.zip -d ${{ runner.temp }}/JUCE
        PROJUCER=${{ runner.temp }}/JUCE/Projucer.app/Contents/MacOS/Projucer
        chmod +x ${PROJUCER}
        $PROJUCER --set-global-search-path osx defaultJuceModulePath ${{ runner.temp }}/JUCE/modules
        $PROJUCER --set-global-search-path osx defaultUserModulePath ${{ github.workspace }}

        for JUCER_FILE in $(find "${{ github.workspace }}" -name "*.jucer"); do
          $PROJUCER --resave $JUCER_FILE --fix-missing-dependencies
        done

        for XCODEPROJ in $(find "${{ github.workspace }}" -name "*.xcodeproj"); do
          xcodebuild -project ${XCODEPROJ} -configuration Debug
        done

/Users/runner/work/JIVE/JIVE/runners/demo-runner/Builds/MacOSX/build/demo-plugin.build/Debug/demo-plugin - VST3.build/Script-A5D98D03CB3A8C84D599B15B.sh: line 8: /Users/runner/work/JIVE/JIVE/runners/demo-runner/Builds/MacOSX/build/Debug/juce_vst3_helper: No such file or directory

I’m also getting the same error locally, building through the Xcode UI

The juce_vst3_helper is a separate target in the JUCE-generated Xcode project. It’s supposed to be set as a dependency of the VST3 proper. The helper tool should be built, automatically, before starting to build the VST3 itself.

I tried the following, which succeeded without errors:

  • Download the release artefacts from github
  • Export an Xcode project for AudioPluginDemo from the downloaded Projucer
  • xcodebuild -project <path/to/generated/project.xcodeproj> -configuration Debug

Looking at the directory structure here, I think that both .jucer files will try to generate a Builds directory at the same location, so I wonder whether the generated project files are getting overwritten or otherwise corrupted when saving both in a row. Does the build succeed if you delete the Builds directory and one of the .jucer files in this directory, then run the script again?

Ahh, yes sorry I hadn’t considered having both the jucer files in the same directory could be causing issues. I’ll try a different approach…