Bitrise
Bitrise is a cloud-hosted CI/CD as-a-service platform built for mobile application projects. It is a mature product, and is widely used for mobile engineering projects. It does have some small disadvantages over Circle CI and other build platforms (see below), but the built-in mobile features make it worth consideration.
Advantages
- Mobile-specific features are built in, for example certificates and provisioning / signing, and deployment to test platforms such as TestFlight and Playstore test track.
- Visual interface for building workflows is easy to learn and use
- It automatically creates default workflows from your existing Android or iOS project, making it quick to get up and running
- It maintains a history of the exact build configuration used to run a build
- Excellent GitHub (and other git system) integration which enables workflows such as only allowing merge if build is green.
- There is a good choice of plans at different price points for different needs
- Documentation is very good and there is good community support
Disadvantages
- Configuration isn't stored in the project repository in the recommended workflow (although a version history is maintained by Bitrise, and this gives the advantage of being able to change build settings without making changes to a branch). As well as implications for version control, this means the workflow isn't portable, and will require special consideration if ownership of a project is likely to be handed over to a different team / organisation.
- Disabling individual steps in a workflow, e.g. for testing, is very fiddly, and not available through the visual interface
- Official support can be slow (although there is good documentation and community support)
- It's slow to set up, because navigating around the website and using the visual builder is inherently slow (but you only have to do it once)
- You don't have guaranteed access to a server, and very rarely at busy times it can take 30 minutes or more for a build to start
- It's online, so if it goes down you can't run any CI/CD (as would be the case with any as-a-service platform)
- 3rd party tools used in the build are configured manually in the Bitrise interface, and it is a manual process to keep versions and settings in sync with local settings