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