Skip to content

Android App

Basics

Repository: github.com/stepuplabs/settle-up-android

Git flow

Git branches

  • master: Code that should be stable and considered release candidate
  • feature/*: Work in progress, but it should build

Fixes, improvements, or small features

  • Do the work in master branch. Limit number of commits, since every commit increases version number.

Large features, refactorings

  • Create feature/* branch and do whatever is needed there, you don't need to care about number of commits
  • Every commit to feature branch triggers deploy to Firebase App Distribution, see more details in Build distribution
  • When the feature is stable, merge it to master with squash (just to 1 commit)
  • Delete branch after merging

Release process

  • Every commit master branch triggers deploy to Google Play Internal testing, see more details in Build distribution
  • When ready for release, write a changelog and notify QA
  • When QA gives 🦭, go to Google Play Console → Test and release → Latest releases
  • Find the build in internal testing, add release notes
  • Then click Promote release and select Open testing, release to 100% there
  • Go back to internal testing build, click Promote Release, select Production
  • If it's a critical bugfix, release to 100%. If it's a large refactoring, set 10%. If it's normal feature, set 30%
  • Go to Publishing overview and send changes to review
  • Wait for review and also at least for a day for crashes to collect
  • When you see no significant new crashes, update rollout to 100%
  • If you see significant new crashes, repeat release process, it will halt current rollout