Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ jobs:
release:
name: Sign, notarize & publish
runs-on: macos-26
# Backstop the per-step notarytool --timeout: if any step wedges, fail at ~1h rather than
# letting the run idle to GitHub's 6-hour hard limit (which a stuck notarization once did).
timeout-minutes: 60
env:
DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer
TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
Expand Down
7 changes: 6 additions & 1 deletion Scripts/release/notarize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,14 @@ log "Zipping app for notarization → $SUBMIT_ZIP"
run ditto -c -k --keepParent "$APP" "$SUBMIT_ZIP"

log "Submitting to the notary service (this can take a few minutes)…"
# --timeout bounds the --wait poll. A healthy submission clears in minutes, but Apple's notary
# service can occasionally wedge a submission "In Progress" indefinitely; without a bound, --wait
# blocks until the CI job itself is killed (a stuck run once burned GitHub's full 6-hour budget).
# Fail fast at 30m so the release errors loudly instead of idling to the runner's hard ceiling.
run xcrun notarytool submit "$SUBMIT_ZIP" \
--keychain-profile "$NOTARY_PROFILE" \
--wait
--wait \
--timeout 30m

log "Stapling the notarization ticket onto the app"
run xcrun stapler staple "$APP"
Expand Down
Loading