Finding best CI/CD for iOS Development
For the past couple of weeks I’ve been researching, setting up and comparing Continuous Integration systems for an Xcode iOS Development project.
This article is about this journey and a subjective comparison between three major CI/CD solutions; Jenkins, CircleCI and Bitrise.
What is Continuous Integration (CI)
There are different types of releases a software developers must do when new features are being developed or bugs are fixed. Each release is mostly the same software with a difference of release frequency and/or target audience.
The main types of releases of a software product typically are as follows:
- internal testing release (~daily)
- company-wide internal release (~every week)
- public beta release (~once every two weeks)
- production release (~once a month)
For each release there’s a bunch of repetitive tasks that are needed to be done, to get a build out to the audience. These steps are usually as follows:
- pull the latest code from a repository
- update third party libraries
- increase build and version number
- run unit tests (possibly on different…