Skip to content
This repository has been archived by the owner on Jun 1, 2024. It is now read-only.

iOS Hotfix Release Workflow

Gabriela Coelho edited this page Jan 11, 2021 · 4 revisions

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.

Overview

Manual

These are steps that must be done manually and are described in details in the release page.

  1. Create release branch
  2. Merge needed PRs to release branch
  3. Create a new release in GitHub

Workflow

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:

4. Configure environment variables

Setup needed environment variables. These variables are used in fastlane lanes and actions.

5. Execute fastlane deploy lane

fastlane steps are executed in a lane called deploy. You can see the following steps here.

fastlane

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.

6. git fetch

Update repository references. This is needed because a new branch will be created from the hotfix tag.

7. Create branch

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.

8. Update Podspec

Updates Beagle's podspec with the new version and tag.

9. Upload Podspec

Pushes Beagle's podspec to Cocoapods.

10. Generate release notes

Executes release_notes fastlane lane.

This lane uses fastlane-plugin-semantic_release plugin to generate release notes.

11. Delete github release

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).

12. Create github release

Creates github release notes for generated version, from release notes generated in step 10.