Continuous integration for small iOS/macOS teams

Continuous integration for small iOS/macOS teams

There are quite a few case studies out there highlighting how industry giants like Shopify and Pandora manage their Mac continuous integration (CI) fleets. However, it’s much more difficult to find good advice for smaller teams that can’t dedicate an entire team to CI management or aren’t willing to invest five-figure sums (or more) per year for their setup.

In this new series, we’re sharing our cost-efficient approach to macOS continuous integration. Make sure to check back so you don’t miss out on all the posts!

History and early experiments

In the early years of PSPDFKit, we experimented with Travis CI, BuddyBuild, and CircleCI. Unfortunately, all of these solutions ended up being too slow and inflexible for us.

Our codebase is large (1.5 MLOC), and compiling can take about 30 minutes. Most of the available virtualized hardware is simply not powerful enough to get results back within a reasonable amount of time. We consider 30 minutes the absolute maximum acceptable amount of time, but of course the faster, the better.

GitHub Actions, for example, specifies 2-core CPU and 7 GB of RAM, and 14 GB disk space(opens in a new tab). With such a configuration, a VM wouldn’t finish compiling in the usual 60-minute limit. We hit similar timeouts with BuddyBuild and, to a lesser degree, CircleCI.

Our approach

This article is the beginning of a series about our approach to CI.

Testing knowledge

We write about our approach to testing and CI occasionally, and while technology constantly evolves, many of the choices we made still work well for us today.

Talk: Continuous integration for the rest of us

Our Founder Peter Steinberger(opens in a new tab) gave a talk(opens in a new tab) about this topic at iOS Conf Singapore 2021(opens in a new tab), the largest iOS developer conference in Southeast Asia.

Continued reading

The next posts in this series will dive deeper into our approach to CI, including:

Be sure to check them out!

Peter Steinberger

Peter Steinberger

Explore related topics

FREE TRIAL Ready to get started?