Skip to content

quality of life

quality of life #16

Workflow file for this run

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 }}