diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..ef60a1e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,108 @@ +name: Build InstaDrums + +on: + push: + branches: [main] + tags: ['v*'] + pull_request: + branches: [main] + +jobs: + build-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Clone JUCE + run: git clone --depth 1 https://github.com/juce-framework/JUCE.git ../JUCE + + - name: Configure CMake + run: cmake -B build -G "Visual Studio 17 2022" -A x64 + + - name: Build Release + run: cmake --build build --config Release + + - name: Package VST3 + run: Compress-Archive -Path "build/InstaDrums_artefacts/Release/VST3/InstaDrums.vst3" -DestinationPath "InstaDrums-VST3-Win64.zip" + + - name: Package Standalone + run: Compress-Archive -Path "build/InstaDrums_artefacts/Release/Standalone/InstaDrums.exe" -DestinationPath "InstaDrums-Standalone-Win64.zip" + + - name: Upload VST3 + uses: actions/upload-artifact@v4 + with: + name: InstaDrums-VST3-Win64 + path: InstaDrums-VST3-Win64.zip + + - name: Upload Standalone + uses: actions/upload-artifact@v4 + with: + name: InstaDrums-Standalone-Win64 + path: InstaDrums-Standalone-Win64.zip + + build-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + + - name: Clone JUCE + run: git clone --depth 1 https://github.com/juce-framework/JUCE.git ../JUCE + + - name: Configure CMake (Universal Binary) + run: cmake -B build -G Xcode -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 + + - name: Build Release + run: cmake --build build --config Release + + - name: Package VST3 + working-directory: build/InstaDrums_artefacts/Release + run: zip -r $GITHUB_WORKSPACE/InstaDrums-VST3-macOS.zip VST3/InstaDrums.vst3 + + - name: Package AU + working-directory: build/InstaDrums_artefacts/Release + run: zip -r $GITHUB_WORKSPACE/InstaDrums-AU-macOS.zip AU/InstaDrums.component + + - name: Package Standalone + working-directory: build/InstaDrums_artefacts/Release + run: zip -r $GITHUB_WORKSPACE/InstaDrums-Standalone-macOS.zip Standalone/InstaDrums.app + + - name: Upload VST3 + uses: actions/upload-artifact@v4 + with: + name: InstaDrums-VST3-macOS + path: InstaDrums-VST3-macOS.zip + + - name: Upload AU + uses: actions/upload-artifact@v4 + with: + name: InstaDrums-AU-macOS + path: InstaDrums-AU-macOS.zip + + - name: Upload Standalone + uses: actions/upload-artifact@v4 + with: + name: InstaDrums-Standalone-macOS + path: InstaDrums-Standalone-macOS.zip + + release: + if: startsWith(github.ref, 'refs/tags/v') + needs: [build-windows, build-macos] + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + files: | + artifacts/InstaDrums-VST3-Win64/InstaDrums-VST3-Win64.zip + artifacts/InstaDrums-Standalone-Win64/InstaDrums-Standalone-Win64.zip + artifacts/InstaDrums-VST3-macOS/InstaDrums-VST3-macOS.zip + artifacts/InstaDrums-AU-macOS/InstaDrums-AU-macOS.zip + artifacts/InstaDrums-Standalone-macOS/InstaDrums-Standalone-macOS.zip + generate_release_notes: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 0555157..9ae34c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ juce_add_plugin(InstaDrums NEEDS_MIDI_OUTPUT TRUE PLUGIN_MANUFACTURER_CODE Inst PLUGIN_CODE Idrm - FORMATS VST3 Standalone + FORMATS VST3 AU Standalone PRODUCT_NAME "InstaDrums" COPY_PLUGIN_AFTER_BUILD FALSE )