-
Notifications
You must be signed in to change notification settings - Fork 90
iOS Hotfix Release Workflow
This is the complete flow for create a new iOS hotfix release.
This workflow will be executed every time a push
event occurs to a tag
with the following name pattern: *.*.*-ios
.
These are steps that must be done manually and are described in details in the release page.
- Create release branch
- Merge needed PRs to release branch
- Create a new release in GitHub
In Beagle GitHub Actions we have a workflow called release
. This workflow will be triggered every time a push
event occurs to any tag in the repository.
You can see it more detailed in the workflow file.
In it, a job called Generate release
is defined witch contains the following steps:
Setup needed environment variables. These variables are used in fastlane lanes and actions.
fastlane steps are executed in a lane called deploy
. You can see the following steps here.
The deploy lane is where we compile and deploy the version. We know that we are deploying an iOS hotfix version by the tag name pattern: *.*.*-iOS
.
This lane will end creating a new GitHub release that will overlap the one created at the beginning of this flow.
You can see it more detailed in the Fastfile.
Update repository references. This is needed because a new branch will be created from the hotfix tag.
Creates a new branch from the hotfix tag. It's named newReleaseFromTag*.*.*-iOS
.
This branch is created only at the virtual machine executing the workflow. This is the branch that will be used to compile the project modules.
Updates Beagle's podspec with the new version and tag.
Pushes Beagle's podspec to Cocoapods.
Executes release_notes
fastlane lane.
This lane uses fastlane-plugin-semantic_release plugin to generate release notes.
This step is necessary because we don't have permission to edit a github release.
A first github release is manually created along with the hotfix tag (this is the start of a hotfix release process).
Creates github release notes for generated version, from release notes generated in step 10.