Repository navigation
ci: release with changie and fastlane - #154
Merged
Merged
Conversation
Release notes come from Changie fragments, which also choose the version and stamp it into project.xcproj. fastlane imports the Developer ID certificate, archives, exports and notarizes. Dry runs can run from any branch. Removes bump-version.sh, project-version.sh and .sparkle/notes/.
3 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This brings the release process tested in AudioBalance to Front Row's Developer ID and Sparkle flow:
changie new, see.changes/README.md). The release batches the fragments into.changes/<version>.md, regeneratesCHANGELOG.md, and stampsMARKETING_VERSIONintoproject.xcproj. Kinds areNew/Changed/Fixed/Updated, and the release type defaults toauto. The archived notes moved from.sparkle/notes/to.changes/.fastlane/Fastfile) has three lanes:import_signing_certificate: an ephemeral keychain, built withcreate_keychainandimport_certificate.build: gym archive and Developer ID export.notarize_dmg: notarize, then staple.render-notes.sh(the appcast HTML),append-appcast-item.sh, the dmg step, the build-number check against the appcast, and the commit → tag → release → push-to-main order.$RUNNER_TEMP/gems, cached, rather thanvendor/bundle. The app target's swift-format lint phase lints everything under./, and it failed on the fastlane gem's Swift files.Test plan
bundle exec fastlane build version:3.1.1 build:9999producesFront Row.appsigned by Developer ID (with a secure timestamp) at 3.1.1 (9999), andcodesign --verify --deep --strictpasses.render-notes/append-appcast-itemtests pass, and the migrated 3.0.0 notes render.