Skip to content

ci: tag the release commit and push the appcast last - #152

Merged
itsjoshpark merged 1 commit into
mainfrom
ci/tag-release-commit
Oct 6, 2026
Merged

itsjoshpark merged 1 commit into
mainfrom
ci/tag-release-commit

Conversation

@itsjoshpark

@itsjoshpark itsjoshpark commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Makes the tag point at the release commit, so checking out vX.Y.Z builds the version it shipped as and includes its archived notes. Before, the tag pointed at the commit before the bump.

New order at the end of the 🚀 Release workflow:

  1. Commit the release (new step): signs the dmg for Sparkle, appends the appcast item, writes the version to project.pbxproj, archives the notes, and commits all of it locally. Nothing is pushed yet.
  2. Tag and create the GitHub release: tags that commit and publishes the release with the dmg and the archived notes.
  3. Publish to the appcast and record the version: pushes the commit to main, retrying with a rebase.

Unlike PeekPreview (itsjoshpark/PeekPreview#11) and AudioBalance (itsjoshpark/AudioBalance#7), main is still pushed last here. The appcast links to releases/download/vX.Y.Z/…dmg. Pushing it before the release exists would offer Sparkle users a download that doesn't exist yet, and a broken update if the release step then failed.

Also:

  • A rebase conflict in the push-retry loop now aborts the rebase with a clear error instead of dying mid-rebase.
  • The loop no longer rebases after its last attempt.
  • If the push to main fails, the error says how to recover by cherry-picking the tagged commit onto main.

If a rebase was needed, main gets a copy of the tagged commit with the same changes rather than the tagged commit itself.

Make the release commit (appcast, version, archived notes) before tagging and tag that commit, so the tagged source reports the version it shipped as. Push it to main only after the release exists, since the appcast links to the release's dmg. Abort a conflicting rebase with a clear error, and stop rebasing after the last push attempt.
@itsjoshpark itsjoshpark closed this Oct 6, 2026
@itsjoshpark itsjoshpark reopened this Oct 6, 2026
@itsjoshpark
itsjoshpark merged commit 26e29c2 into main Oct 6, 2026
4 checks passed
@itsjoshpark
itsjoshpark deleted the ci/tag-release-commit branch October 6, 2026 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant