quality of life #16
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 AudioChain | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| jobs: | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup CMake | |
| uses: jwlawson/actions-setup-cmake@v1.14 | |
| with: | |
| cmake-version: '3.22.x' | |
| - name: Configure CMake build | |
| run: | | |
| mkdir -p build | |
| cd build | |
| cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" | |
| - name: Build Release | |
| run: | | |
| cd build | |
| cmake --build . --config Release --parallel $(sysctl -n hw.ncpu) | |
| - name: Create DMG | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| run: | | |
| # Install create-dmg for creating the DMG | |
| brew install create-dmg | |
| # Find the built app in the CMake build directory | |
| APP_PATH=$(find build -name "*.app" -type d | head -1) | |
| if [ -n "$APP_PATH" ]; then | |
| echo "Found app at: $APP_PATH" | |
| # Create DMG | |
| create-dmg \ | |
| --volname "AudioChain" \ | |
| --window-pos 200 120 \ | |
| --window-size 800 400 \ | |
| --icon-size 100 \ | |
| --icon "AudioChain.app" 200 190 \ | |
| --hide-extension "AudioChain.app" \ | |
| --app-drop-link 600 185 \ | |
| "AudioChain-macOS.dmg" \ | |
| "$APP_PATH" | |
| else | |
| echo "App not found, listing build directory contents..." | |
| find build -type f -name "*.app" || find build -type d | |
| fi | |
| - name: Upload macOS artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: AudioChain-macOS | |
| path: AudioChain-macOS.dmg | |
| if-no-files-found: ignore | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup Visual Studio | |
| uses: microsoft/setup-msbuild@v2 | |
| - name: Setup CMake | |
| uses: jwlawson/actions-setup-cmake@v1.14 | |
| with: | |
| cmake-version: '3.22.x' | |
| - name: Download and setup ASIO SDK | |
| shell: powershell | |
| run: .\asio.ps1 | |
| - name: Configure CMake build | |
| run: | | |
| mkdir build | |
| cd build | |
| cmake .. -DCMAKE_BUILD_TYPE=Release -A x64 | |
| - name: Build Release | |
| run: | | |
| cd build | |
| cmake --build . --config Release --parallel | |
| - name: Upload Windows artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: AudioChain-Windows | |
| path: build/**/AudioChain.exe | |
| if-no-files-found: ignore | |
| release: | |
| needs: [build-macos, build-windows] | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: v${{ github.run_number }} | |
| name: AudioChain v${{ github.run_number }} | |
| body: | | |
| ## AudioChain Release v${{ github.run_number }} | |
| Cross-platform audio processing application with VST plugin chain support. | |
| Built from commit: ${{ github.sha }} | |
| files: | | |
| AudioChain-macOS/AudioChain-macOS.dmg | |
| AudioChain-Windows/AudioChain_artefacts/Release/AudioChain.exe | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |