Search code examples
androidcontinuous-integrationjenkins-pipelinegitlab-cibamboo

Continuous integration with pipelines


I'm an Android developer with no experience with CI/CD pipelines, we are currently using GitLab for our source control. Every feature that I'm working on (I'm the only android developer at the moment) I'm doing on a separate branch (branching the master and working on separate branch). We know it's not the best solution but this is how we are working now and we want to improve that.

A few issues that we currently have right now:

1) As I mentioned before, every feature is currently sits on a different branch. When it's time to release a version for testing/release we want to work only with one apk instead of multiple apks and also for every apk we need to increase the version number or change the application name which is not practical in a long run. How can this process be more sufficient and more effective?

2) This solution needs to be compatible with iOS as well.

There are several possibilities such as Jenkins, Bamboo, Azure pipelines and GitLab CI. I'm not sure which will be a better choice for our needs.

Thank you.


Solution

  • There are multiple branching strategies aka git workflows well discussed and tested over tine.. Here is an article at medium that discuss them in detail - https://medium.com/@patrickporto/4-branching-workflows-for-git-30d0aaee7bf

    This flow relies on two branches

    master — this branch contains production code. All development code is merged into master in sometime.

    develop — this branch contains pre-production code. When the features are finished then they are merged into develop.

    I would personally recommend this strategy that uses develop branch- so your code goes to feature branch, then develop and then you label every release on develop.

    Every such release is synced to master post-release. You can read more on the medium post.

    Hope this helps.