build: bump to r132 #14
Workflow file for this run
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: Build and Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| inputs: | |
| create_release: | |
| description: 'Create a release with artifacts' | |
| required: false | |
| default: 'false' | |
| env: | |
| BUILD_TYPE: Release | |
| jobs: | |
| build-macos: | |
| runs-on: macos-14 # Apple Silicon runner | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Configure CMake | |
| run: | | |
| cmake -B build \ | |
| -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ | |
| -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \ | |
| -DJAMWIDE_UNIVERSAL=ON \ | |
| -DJAMWIDE_DEV_BUILD=OFF \ | |
| -DCLAP_WRAPPER_DOWNLOAD_DEPENDENCIES=TRUE | |
| - name: Build | |
| run: cmake --build build --config ${{ env.BUILD_TYPE }} -j $(sysctl -n hw.ncpu) | |
| - name: Package artifacts | |
| run: | | |
| mkdir -p artifacts/macos | |
| # Package CLAP | |
| cd build | |
| zip -r ../artifacts/macos/JamWide-macOS-CLAP.zip JamWide.clap | |
| # Package VST3 | |
| zip -r ../artifacts/macos/JamWide-macOS-VST3.zip JamWide.vst3 | |
| # Package AU | |
| zip -r ../artifacts/macos/JamWide-macOS-AU.zip JamWide.component | |
| # Create combined package | |
| zip -r ../artifacts/macos/JamWide-macOS-All.zip JamWide.clap JamWide.vst3 JamWide.component | |
| - name: Upload macOS artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: JamWide-macOS | |
| path: artifacts/macos/*.zip | |
| retention-days: 30 | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Configure CMake | |
| run: | | |
| cmake -B build ` | |
| -G "Visual Studio 17 2022" ` | |
| -A x64 ` | |
| -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} ` | |
| -DJAMWIDE_DEV_BUILD=OFF ` | |
| -DCLAP_WRAPPER_DOWNLOAD_DEPENDENCIES=TRUE | |
| - name: Build | |
| run: cmake --build build --config ${{ env.BUILD_TYPE }} -j $env:NUMBER_OF_PROCESSORS | |
| - name: Package artifacts | |
| shell: pwsh | |
| run: | | |
| New-Item -ItemType Directory -Force -Path artifacts/windows | |
| # Debug: Show what was built | |
| Write-Host "=== Build output structure ===" | |
| Get-ChildItem -Path build -Recurse -Include "*.clap","*.vst3" | Select-Object FullName | |
| # CLAP is in build/CLAP/Release/JamWide.clap | |
| Compress-Archive -Path build/CLAP/${{ env.BUILD_TYPE }}/JamWide.clap -DestinationPath artifacts/windows/JamWide-Windows-CLAP.zip | |
| # VST3 is a folder bundle in build/Release/JamWide.vst3/ | |
| Compress-Archive -Path build/${{ env.BUILD_TYPE }}/JamWide.vst3 -DestinationPath artifacts/windows/JamWide-Windows-VST3.zip | |
| # Create combined package | |
| Compress-Archive -Path build/CLAP/${{ env.BUILD_TYPE }}/JamWide.clap, build/${{ env.BUILD_TYPE }}/JamWide.vst3 -DestinationPath artifacts/windows/JamWide-Windows-All.zip | |
| - name: Upload Windows artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: JamWide-Windows | |
| path: artifacts/windows/*.zip | |
| retention-days: 30 | |
| release: | |
| needs: [build-macos, build-windows] | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/v') || github.event.inputs.create_release == 'true' | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: Get version from tag | |
| id: get_version | |
| run: | | |
| if [[ "${{ github.ref }}" == refs/tags/* ]]; then | |
| VERSION=${GITHUB_REF#refs/tags/} | |
| else | |
| VERSION="dev-$(date +%Y%m%d-%H%M%S)" | |
| fi | |
| echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
| - name: Generate release notes | |
| id: release_notes | |
| run: | | |
| # Get build number from source | |
| BUILD_NUM=$(grep -o 'JAMWIDE_BUILD_NUMBER [0-9]*' src/build_number.h | awk '{print $2}' || echo "unknown") | |
| cat << EOF > release_notes.md | |
| ## JamWide ${{ steps.get_version.outputs.VERSION }} | |
| **Build:** r${BUILD_NUM} | |
| ### Downloads | |
| #### macOS (Universal: Apple Silicon + Intel) | |
| - **JamWide-macOS-All.zip** - All formats (CLAP, VST3, AU) | |
| - **JamWide-macOS-CLAP.zip** - CLAP only | |
| - **JamWide-macOS-VST3.zip** - VST3 only | |
| - **JamWide-macOS-AU.zip** - Audio Unit only | |
| #### Windows (x64) | |
| - **JamWide-Windows-All.zip** - All formats (CLAP, VST3) | |
| - **JamWide-Windows-CLAP.zip** - CLAP only | |
| - **JamWide-Windows-VST3.zip** - VST3 only | |
| ### Installation | |
| **macOS:** | |
| - CLAP: \`~/Library/Audio/Plug-Ins/CLAP/\` | |
| - VST3: \`~/Library/Audio/Plug-Ins/VST3/\` | |
| - AU: \`~/Library/Audio/Plug-Ins/Components/\` | |
| **Windows:** | |
| - CLAP: \`C:\\Program Files\\Common Files\\CLAP\\\` | |
| - VST3: \`C:\\Program Files\\Common Files\\VST3\\\` | |
| --- | |
| ⚠️ **Early Development** - Not yet ready for production use | |
| EOF | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: JamWide ${{ steps.get_version.outputs.VERSION }} | |
| body_path: release_notes.md | |
| draft: false | |
| prerelease: true | |
| files: | | |
| artifacts/JamWide-macOS/*.zip | |
| artifacts/JamWide-Windows/*.zip | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |