-
Notifications
You must be signed in to change notification settings - Fork 116
How to Release
Daniel edited this page Jan 23, 2019
·
9 revisions
The purpose of this page is to document JOSESwift's release automation. It should give maintainers an overview on how to release a new version of JOSESwift.
We heavily rely on Fastlane for automating our release process. The purpose of automating this process is to get rid of repetitive, error-prone tasks while promoting short release cycles.
- π€
bundle exec fastlane prepare type:<major|minor|patch>
-
master
β¬ οΈrelease/<x-x-x>
- π
bundle exec fastlane release
Releasing a new version of JOSESwift consists of three parts, two of which are already automated:
- Release preparation (automated)
- Release pull request (manual action needed)
- Release (automated)
This will bump the version number of the project, format Swift code, and run the tests.
All changes will be committed and pushed to a release branch release/<x-x-x>
.
- Checkout master and run
bundle exec fastlane prepare type:<major|minor|patch>
depending on the version increment you want to make. See Semantic Versioning for details. - The lane will halt before it finishes and ask for your confirmation to continue. If you want to include any changes in the release, you can make them before you continue the lane. This is a good point to update the changelog. It will automatically commit your changes to the release branch it created.
- Go to GitHub and create a pull request to merge the release branch from the prepare step to
master
. - Once the pull request has been approved, merge it and continue with the last step.
- Checkout
master
and make sure it is up-to-date with the remote. - Run
bundle exec fastlane release
. This will tag the release and push the tag to GitHub. It will also push the updated podspec to the CocoaPods trunk.