Skip to content

Build Polyphone for MacOS aarch64 #2

Build Polyphone for MacOS aarch64

Build Polyphone for MacOS aarch64 #2

name: Build Polyphone for MacOS aarch64
on:
workflow_call:
inputs:
tag:
required: true
type: string
workflow_dispatch:
inputs:
tag:
required: true
default: '0.0.0'
type: string
env:
QT_VERSION: '6.7.3'
jobs:
build-macos-aarch64:
environment: production
runs-on: macos-15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Update macOS plist version
run: |
NUMERIC_VERSION=$(echo "${{ inputs.tag }}" | sed -E 's/^([0-9]+\.[0-9]+)(\.([0-9]+))?.*/\1.\3/')
PATCH=$(echo "$NUMERIC_VERSION" | cut -d. -f3)
if [ -z "$PATCH" ]; then
NUMERIC_VERSION="${NUMERIC_VERSION}0"
fi
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $NUMERIC_VERSION" packaging/mac/polyphone.plist
- name: Update version info in polyphone.pro
run: |
TAG="${{ inputs.tag }}"
SOFT_VERSION="${TAG%%-*}"
if [[ "$TAG" == *"-"* ]]; then
IDENTIFIER="${TAG#*-}"
else
IDENTIFIER=""
fi
CURRENT_YEAR=$(date +%Y)
echo "Tag: $TAG"
echo "SOFT_VERSION: $SOFT_VERSION"
echo "IDENTIFIER: $IDENTIFIER"
echo "CURRENT_YEAR: $CURRENT_YEAR"
sed -i '' 's/SOFT_VERSION=\\\\\\\"[^\\]*\\\\\\\"/SOFT_VERSION=\\\\\\\"'${SOFT_VERSION}'\\\\\\\"/' sources/polyphone.pro
sed -i '' 's/IDENTIFIER=\\\\\\\"[^\\]*\\\\\\\"/IDENTIFIER=\\\\\\\"'${IDENTIFIER}'\\\\\\\"/' sources/polyphone.pro
sed -i '' 's/CURRENT_YEAR=\\\\\\\"[^\\]*\\\\\\\"/CURRENT_YEAR=\\\\\\\"'${CURRENT_YEAR}'\\\\\\\"/' sources/polyphone.pro
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
host: mac
target: desktop
arch: clang_64
- name: Install dependencies
run: |
brew install \
libsndfile \
libogg \
libvorbis \
flac \
lame \
mpg123 \
opus
- name: Configure with qmake
run: |
cd sources
qmake polyphone.pro CONFIG+=release
- name: Build Polyphone
run: |
cd sources
make -j$(sysctl -n hw.ncpu)
- name: Deploy and create dmg
run: |
cd sources
macdeployqt ../macos/Polyphone.app
xattr -cr ../macos/Polyphone.app
codesign --force --deep --sign - ../macos/Polyphone.app
codesign --verify --deep --strict --verbose=2 ../macos/Polyphone.app
hdiutil create -volname "Polyphone" -srcfolder ../macos/Polyphone.app -ov -format UDZO ../macos/Polyphone.dmg
mv ../macos/Polyphone.dmg ../macos/Polyphone_${{ inputs.tag }}-macOS_12.dmg
- name: Upload artifact
id: upload-artifact
uses: actions/upload-artifact@v4
with:
name: polyphone-macos-aarch64-installer
path: macos/*.dmg
retention-days: 7
if-no-files-found: error