Skip to main content

Mobile git workflow and CI

This guide covers our branching model and the CI flow integrated with it.

Git Workflow​

Branching model​

Branch
masterProduction ready and released code.
release/x.y.zWIP for a new release, cut from master.
test/x.y.zRelease candidate builds, cut from release/*.
stable/x.y.zStable 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

Module diagram Click to enlarge

Continuous integration​

Android (Gitlab CI):

BranchFlow
masterSpec test -> Clean the deleted terms from Poeditor
release/x.y.zSpec test -> Build App -> Apk artifact stored 7 days -> Submit new terms to Poeditor
test/x.y.zSpec test -> Build Full and Play store versions -> Deploy both to s3 and browserstack
stable/x.y.zSpec 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):

BranchFlow
masterSpec test
release/x.y.zSpec test
test/x.y.zSpec test -> Build -> Deploy to test flight
stable/x.y.zSpec test -> Build -> Deploy to test flight
feat/*Spec test
fix/*Spec test