Continuous integration

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

By integrating regularly, you can detect errors quickly and locate them more easily.

Bitrise

For all active projects we use Bitrise (previously we used CircleCI). Unlike Circle, which is suitable for any type of project, Bitrise is CI/CD just for mobile apps and it offers some advantages for mobile development CI.

Bitrise and Circle are a cloud-based solution, your code gets cloned to a remote server, which could pose a security problem for your client.

Configuration

We usually have two main workflows:

master

aa

Protected branches

In the git flow model that is applied at Infinum, the dev and release branches have a special role in the development and release cycle. It is expected that the code will not be pushed directly to those two branches. Therefore, the branches need to be set as protected.

First, the dev and release branch need to be set as protected. In order to do so, administrator rights are required on the working project. The administrator user can click on the Settings button, as depicted in the picture.

Click on Settings

Next, select the Branches tab as shown in the picture.

Click on Branches

Next, select the dev branch in the Protected branches section.

Select the branch

Mark the check boxes as shown.

Mark the check boxes