Continuous Integration (CI) was something I learned about during the first years of my undergraduate study in college; right about when I first began to become acquainted with Agile. Since then, I have always sought to understand its value and had the fortune to work with great teams at great organizations that embraced it to one degree or another.
Since joining the West Monroe mobile team we lacked such a solution and our attempts to set up such a system was met with either failure or a complexity that required more maintenance than it was worth (VSO and OSX Server specifically). That is why when I came across Bitrise at Xamarin Evolve 2016, I was very interested. Since bringing it back to West Monroe our productivity on developer projects has increased by orders of magnitude and all teams are now embracing CI as an integral part of our delivery process. It has had such an impact on it that I figured discussing it here would be help others seeking similar solutions.
What is it? And how much will it cost?
The first thing to understand is Bitrise is, primarily, cloud based. Build request spawn virtual machines which are spun up and perform a series of steps. At the termination the machine is, ultimately, destroyed. Bitrise can ALSO be run on-premise if desired using the Bitrise CLI, but quite honestly the cloud option seems to be the perfect option for most scenarios. Pricing wise, Bitrise can be used for free if you keep your team to 2 team members and do less than 200 builds per month with only a 10m time limit per build.
One limitation to the free plan is the single concurrency for builds; makes it highly undesirable if you are working on multiple separate projects. With single concurrency only ONE build can be in process at a time, so if a lot of work is going it can quickly stack up.
But is it easy?
If you are like me and have EVER dealt with CI systems in the past you know that, for the most part, its not an easy chore. The systems are all different and any one of a million things can go wrong. Honestly, if you intend to do DevOps at all you have to understand all of the pieces in the puzzle. From compiling and building, to the use of profiles and build configurations, to understanding how users will interact with other tools.
While Bitrise has a learning curve, the documentation is very good and the team keeps a regulation communication channel open via Slack; I have personally spent time talking over issues I have had with their CTO Viktor. All of them are nice guys and work hard to ensure a quality product. And, compared to other systems I have used, it is extremely easy. During presentations I can go from no builds to a complete CI type build in under 10m using Github.
So how do I get started?
If you want to give a shot head over to http://bitrise.io and sign up. Take it for a test spin and use http://chat.bitrise.io/ to get access to the Slack channel. I am on there most of the time as well (xximjasonxx). As for the more technical gist, I am going to do another article in the coming days on the standard setup and then I want to cover more of the topics in-depth. As I am the main DevOps guy for the mobile teams at West Monroe, I feel it’s a good idea to make sure I have this knowledge in many places in case I get hit by a bus