@@ -460,6 +460,39 @@ jobs:
460460 --size "${{ env.ZIP_SIZE }}" \
461461 --download-url "https://github.com/katipally/Doom-Coder/releases/download/${{ env.TAG }}/DoomCoder-${{ env.VERSION }}.zip"
462462
463+ # Publish the GitHub Release (with the notarized DMG + ZIP) BEFORE the
464+ # appcast push to main. The deliverable users actually download must not
465+ # depend on the bookkeeping commit succeeding — if the protected-branch
466+ # push ever fails, the release is already live and recoverable. It also
467+ # guarantees the appcast's download URL resolves the moment it lands.
468+ - name : Create GitHub Release
469+ uses : softprops/action-gh-release@v3.0.0
470+ env :
471+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 : true
472+ with :
473+ name : " Doom Coder ${{ env.TAG }}"
474+ files : |
475+ DoomCoder-${{ env.VERSION }}.dmg
476+ DoomCoder-${{ env.VERSION }}.zip
477+ generate_release_notes : true
478+ body : |
479+ ## 📦 Installation
480+
481+ **DMG (recommended):**
482+ 1. Download **`DoomCoder-${{ env.VERSION }}.dmg`** below
483+ 2. Open it and drag **DoomCoder** into your Applications folder
484+ 3. Launch — no Gatekeeper warnings, no "unidentified developer" prompts
485+
486+ **ZIP:**
487+ 1. Download **`DoomCoder-${{ env.VERSION }}.zip`**
488+ 2. Unzip and move `DoomCoder.app` to `/Applications`
489+
490+ DoomCoder is **signed with a Developer ID and notarized by Apple**.
491+ Existing users receive automatic updates via the built-in Sparkle updater.
492+
493+ ---
494+ Full changelog: [CHANGELOG.md](https://github.com/katipally/Doom-Coder/blob/main/docs/CHANGELOG.md)
495+
463496 - name : Commit version bump and appcast.xml
464497 run : |
465498 git config user.name "github-actions[bot]"
@@ -523,37 +556,11 @@ jobs:
523556 sleep $((attempt * 2))
524557 done
525558
526- echo "::error::Failed to push version bump after 5 attempts"
559+ echo "::error::appcast.xml/version-bump push to main failed after 5 attempts."
560+ echo "::error::The GitHub Release IS already published — only the Sparkle"
561+ echo "::error::auto-update feed (appcast.xml on main) is stale. See README/RELEASING."
527562 exit 1
528563
529- - name : Create GitHub Release
530- uses : softprops/action-gh-release@v3.0.0
531- env :
532- FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 : true
533- with :
534- name : " Doom Coder ${{ env.TAG }}"
535- files : |
536- DoomCoder-${{ env.VERSION }}.dmg
537- DoomCoder-${{ env.VERSION }}.zip
538- generate_release_notes : true
539- body : |
540- ## 📦 Installation
541-
542- **DMG (recommended):**
543- 1. Download **`DoomCoder-${{ env.VERSION }}.dmg`** below
544- 2. Open it and drag **DoomCoder** into your Applications folder
545- 3. Launch — no Gatekeeper warnings, no "unidentified developer" prompts
546-
547- **ZIP:**
548- 1. Download **`DoomCoder-${{ env.VERSION }}.zip`**
549- 2. Unzip and move `DoomCoder.app` to `/Applications`
550-
551- DoomCoder is **signed with a Developer ID and notarized by Apple**.
552- Existing users receive automatic updates via the built-in Sparkle updater.
553-
554- ---
555- Full changelog: [CHANGELOG.md](https://github.com/katipally/Doom-Coder/blob/main/docs/CHANGELOG.md)
556-
557564 - name : Clean up keychain
558565 if : always()
559566 run : |
0 commit comments