Update build-macos.yml

This commit is contained in:
Anirudh Sevugan 2025-08-08 16:53:04 -05:00 committed by GitHub
parent 56e22ad4ab
commit 32d090e514
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -29,64 +29,13 @@ jobs:
run: npm install
working-directory: simpliplay
# This step creates the DMG for all three architectures.
# The output DMGs are typically in 'dist/' but let's not assume.
- name: Create unsigned DMGs with UI for all architectures
- name: Create DMGs
run: npx electron-builder --mac --x64 --arm64 --universal
working-directory: simpliplay
# This is the key step that signs and converts all three DMGs.
# It dynamically finds the DMG files wherever they are.
- name: Sign and finalize DMGs
run: |
# Use a dynamic find command to locate all DMG files in the 'dist' directory.
DMGS=$(find dist -name "*.dmg" -print)
if [ -z "$DMGS" ]; then
echo "No DMG files found. Check your electron-builder configuration."
exit 1
fi
# Loop through each DMG file found
for DMG_PATH in $DMGS; do
echo "Processing DMG: $DMG_PATH"
# The mount point needs to be a temporary path.
MOUNT_PATH="/Volumes/temp-dmg-mount"
# Attach the DMG as a read/write volume.
# Using -quiet to reduce verbose output
hdiutil attach "$DMG_PATH" -mountpoint "$MOUNT_PATH" -quiet
# The app bundle path inside the mounted DMG.
# We hardcode the app name "SimpliPlay.app" because it's a constant.
APP_PATH="$MOUNT_PATH/SimpliPlay.app"
if [ -d "$APP_PATH" ]; then
# Ad-hoc sign the app bundle inside the mounted DMG.
echo "Ad-hoc signing app bundle at $APP_PATH..."
codesign --force --deep --sign - "$APP_PATH"
else
echo "Error: App bundle not found at $APP_PATH inside the DMG."
hdiutil detach "$MOUNT_PATH" -quiet
exit 1
fi
# Unmount the DMG.
hdiutil detach "$MOUNT_PATH" -quiet
# Define the final output path.
FINAL_DMG_PATH="${DMG_PATH%.dmg}-signed.dmg"
# Convert the read/write DMG to a final, compressed, read-only DMG.
echo "Converting '$DMG_PATH' to a compressed, read-only DMG: $FINAL_DMG_PATH"
hdiutil convert "$DMG_PATH" -format UDZO -o "$FINAL_DMG_PATH"
done
working-directory: simpliplay
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: builds
# Upload only the final signed DMGs
path: simpliplay/dist/*-signed.dmg
path: simpliplay/dist/*.dmg