From 12b9ddbc9e2bf03860309187a8ec7523fbe9e9df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?AI=E4=BA=A7=E5=93=81=E9=BB=84=E5=8F=94?= Date: Fri, 7 Aug 2026 08:32:49 +0800 Subject: [PATCH] Retry transient DMG creation failures --- script/package_release.sh | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/script/package_release.sh b/script/package_release.sh index b0ee368..71562ab 100755 --- a/script/package_release.sh +++ b/script/package_release.sh @@ -118,14 +118,29 @@ fi echo "Creating dmg..." rm -rf "$DMG_STAGING" mkdir -p "$DMG_STAGING" -cp -R "$APP_BUNDLE" "$DMG_STAGING/" +ditto "$APP_BUNDLE" "$DMG_STAGING/$APP_NAME.app" ln -s /Applications "$DMG_STAGING/Applications" -hdiutil create \ - -volname "$APP_NAME" \ - -srcfolder "$DMG_STAGING" \ - -ov \ - -format UDZO \ - "$DMG_PATH" + +DMG_CREATED=false +for attempt in 1 2 3; do + rm -f "$DMG_PATH" + if hdiutil create \ + -volname "$APP_NAME" \ + -srcfolder "$DMG_STAGING" \ + -ov \ + -format UDZO \ + "$DMG_PATH"; then + DMG_CREATED=true + break + fi + echo "DMG creation attempt $attempt failed; retrying..." >&2 + sleep $((attempt * 3)) +done + +if [[ "$DMG_CREATED" != true ]]; then + echo "DMG creation failed after 3 attempts." >&2 + exit 1 +fi echo "Signing dmg with Developer ID..." codesign --force --timestamp --sign "$IDENTITY" "$DMG_PATH" codesign --verify --verbose=2 "$DMG_PATH"