Mobile git workflow and CI
This guide covers our branching model and the CI flow integrated with it.
Git Workflow
Branching model
| Branch | |
|---|---|
| master | Production ready and released code. |
| release/x.y.z | WIP for a new release, cut from master. |
| test/x.y.z | Release candidate builds, cut from release/*. |
| stable/x.y.z | Stable builds, cut from release/*. Merge request should be opened pointing to master after the release. |
| feat/* | New feature branch. Merge requests should be opened pointing towards the respective release/* branch |
| fix/* | Bugfix branch. Merge requests should be opened pointing towards the respective release/* branch |
Continuous integration
Android (Gitlab CI):
| Branch | Flow |
|---|---|
| master | Spec test -> Clean the deleted terms from Poeditor |
| release/x.y.z | Spec test -> Build App -> Apk artifact stored 7 days -> Submit new terms to Poeditor |
| test/x.y.z | Spec test -> Build Full and Play store versions -> Deploy both to s3 and browserstack |
| stable/x.y.z | Spec test -> Build Full and Play store versions -> Deploy to s3, browserstack, and the play store |
| feat/* | Spec test -> Build App -> Apk artifact stored 7 days |
| fix/* | Spec test -> Build App -> Apk artifact stored 7 days |
iOS (Circle CI):
| Branch | Flow |
|---|---|
| master | Spec test |
| release/x.y.z | Spec test |
| test/x.y.z | Spec test -> Build -> Deploy to test flight |
| stable/x.y.z | Spec test -> Build -> Deploy to test flight |
| feat/* | Spec test |
| fix/* | Spec test |