Mobile CI/CD pipelines

A typical mobile Pipeline is composed by few components, named environments. Moving an App version from one environment to another in an orchestrated way is crucial for delivering a stable and valid version. Failing to complying with the sequence will definitely cause loss in the App’s quality. In this post, we expose the terms and vocabulary so everyone can enrich their understanding of the process.

Environments

On the mobile side

  • Dev App: Place where developers can run their tests
  • QA App: Place where testers can run their tests
  • Production App: Place where final users can use the App. This app is the one that goes to the App Store

On the backend side

  • Dev backend env: a place so developers can test with their own data
  • QA backend env: shared place where test users can test the App
  • Staging backend env: shared place where test users and product owners can test the App.
  • Production backend env: place where final users can try the features

note: there could have more environments, but that is the minimum suggestion. Note also that environment names are not strictly defined, so you can name according to your team reality.

Why so many environments?

The App code starts to be manufactured in the dev environment(Dev App), which normally follows few iterations to get ready for testing. After that, the code is shipped to the test environment so the testers can assure its quality. In case the App does not get through the tests, the new feature/improvement can get back to development until it gets ready for production. Following this pipeline, we guarantee that defects shall not get through to the next environment.

Deployments

A deployment is the act of placing a code into the environment. For instance, if someone bundle the code into test environment, then it means that the code has been deployed to the test environment.

Sequences

Following the right sequence to deploy new versions to environments is very important. For instance, a code in development going straight to beta App is wrong. To avoid that, here are the sequence rules to follow:

  • Production environment: this environment can only receive deployments from staging backend after thorough testing.
  • Production App: This environment can only receive deployments from a QA/staging App after thorough testing.
  • Test App: This environment can only receive deployments from a Dev App after thorough testing.

A regular sequence in the App development is: from development, it should go to test environment, which then goes to production. In between those environment, it should happen comprehensive testing.

After understanding those rules, you will have a way to ensure the minimum quality. A future post will talk about what tools we can use to make this happen in the mobile side.

Cheers!

Leave a comment