All checks were successful
Deploy Website / deploy (push) Has been skipped
136 lines
4.9 KiB
YAML
136 lines
4.9 KiB
YAML
name: Assemble macOS Universal
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
assemble:
|
|
runs-on: macos-14
|
|
timeout-minutes: 10
|
|
|
|
steps:
|
|
- name: Download macOS artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
pattern: cagire-macos-*
|
|
path: artifacts
|
|
|
|
- name: Create universal CLI binary
|
|
run: |
|
|
lipo -create \
|
|
artifacts/cagire-macos-x86_64/cagire \
|
|
artifacts/cagire-macos-aarch64/cagire \
|
|
-output cagire
|
|
chmod +x cagire
|
|
lipo -info cagire
|
|
|
|
- name: Create universal app bundle
|
|
run: |
|
|
cd artifacts/cagire-macos-aarch64-desktop
|
|
unzip Cagire.app.zip
|
|
cd ../cagire-macos-x86_64-desktop
|
|
unzip Cagire.app.zip
|
|
cd ../..
|
|
cp -R artifacts/cagire-macos-aarch64-desktop/Cagire.app Cagire.app
|
|
lipo -create \
|
|
artifacts/cagire-macos-x86_64-desktop/Cagire.app/Contents/MacOS/cagire-desktop \
|
|
artifacts/cagire-macos-aarch64-desktop/Cagire.app/Contents/MacOS/cagire-desktop \
|
|
-output Cagire.app/Contents/MacOS/cagire-desktop
|
|
lipo -info Cagire.app/Contents/MacOS/cagire-desktop
|
|
zip -r Cagire.app.zip Cagire.app
|
|
|
|
- name: Create universal CLAP plugin
|
|
run: |
|
|
mkdir -p cagire-plugins.clap/Contents/MacOS
|
|
cp artifacts/cagire-macos-aarch64-clap/cagire-plugins.clap/Contents/Info.plist \
|
|
cagire-plugins.clap/Contents/ 2>/dev/null || true
|
|
cp artifacts/cagire-macos-aarch64-clap/cagire-plugins.clap/Contents/PkgInfo \
|
|
cagire-plugins.clap/Contents/ 2>/dev/null || true
|
|
lipo -create \
|
|
artifacts/cagire-macos-x86_64-clap/cagire-plugins.clap/Contents/MacOS/cagire-plugins \
|
|
artifacts/cagire-macos-aarch64-clap/cagire-plugins.clap/Contents/MacOS/cagire-plugins \
|
|
-output cagire-plugins.clap/Contents/MacOS/cagire-plugins
|
|
lipo -info cagire-plugins.clap/Contents/MacOS/cagire-plugins
|
|
|
|
- name: Create universal VST3 plugin
|
|
run: |
|
|
mkdir -p cagire-plugins.vst3/Contents/MacOS
|
|
cp -R artifacts/cagire-macos-aarch64-vst3/cagire-plugins.vst3/Contents/Info.plist \
|
|
cagire-plugins.vst3/Contents/ 2>/dev/null || true
|
|
cp artifacts/cagire-macos-aarch64-vst3/cagire-plugins.vst3/Contents/PkgInfo \
|
|
cagire-plugins.vst3/Contents/ 2>/dev/null || true
|
|
cp -R artifacts/cagire-macos-aarch64-vst3/cagire-plugins.vst3/Contents/Resources \
|
|
cagire-plugins.vst3/Contents/ 2>/dev/null || true
|
|
lipo -create \
|
|
artifacts/cagire-macos-x86_64-vst3/cagire-plugins.vst3/Contents/MacOS/cagire-plugins \
|
|
artifacts/cagire-macos-aarch64-vst3/cagire-plugins.vst3/Contents/MacOS/cagire-plugins \
|
|
-output cagire-plugins.vst3/Contents/MacOS/cagire-plugins
|
|
lipo -info cagire-plugins.vst3/Contents/MacOS/cagire-plugins
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
sparse-checkout: |
|
|
assets/DMG-README.txt
|
|
scripts/make-dmg.sh
|
|
clean: false
|
|
|
|
- name: Create DMG
|
|
run: |
|
|
chmod +x scripts/make-dmg.sh
|
|
scripts/make-dmg.sh Cagire.app .
|
|
|
|
- name: Build .pkg installer
|
|
run: |
|
|
VERSION="${GITHUB_REF_NAME#v}"
|
|
mkdir -p pkg-root/Applications pkg-root/usr/local/bin
|
|
cp -R Cagire.app pkg-root/Applications/
|
|
cp cagire pkg-root/usr/local/bin/
|
|
pkgbuild --analyze --root pkg-root component.plist
|
|
plutil -replace BundleIsRelocatable -bool NO component.plist
|
|
pkgbuild --root pkg-root --identifier com.sova.cagire \
|
|
--version "$VERSION" --install-location / \
|
|
--component-plist component.plist \
|
|
"Cagire-${VERSION}-universal.pkg"
|
|
|
|
- name: Upload universal CLI
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cagire-macos-universal
|
|
path: cagire
|
|
|
|
- name: Upload universal app bundle
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cagire-macos-universal-desktop
|
|
path: Cagire.app.zip
|
|
|
|
- name: Prepare universal plugin staging
|
|
run: |
|
|
mkdir -p staging/clap staging/vst3
|
|
cp -R cagire-plugins.clap staging/clap/
|
|
cp -R cagire-plugins.vst3 staging/vst3/
|
|
|
|
- name: Upload universal CLAP plugin
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cagire-macos-universal-clap
|
|
path: staging/clap/
|
|
|
|
- name: Upload universal VST3 plugin
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cagire-macos-universal-vst3
|
|
path: staging/vst3/
|
|
|
|
- name: Upload DMG
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cagire-macos-universal-dmg
|
|
path: Cagire-*.dmg
|
|
|
|
- name: Upload .pkg installer
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cagire-macos-universal-pkg
|
|
path: Cagire-*-universal.pkg
|