How Lyft's mobile team does mobile CI at scale
In a recent UnblockConf event, Keith Smiley from Lyft shared insights into their mobile Continuous Integration (CI) journey using Buildkite. With over 200 active contributors to the mobile code base and thousands of CI builds per week, Lyft faced slow build times on macOS machines due to a rewrite of their iOS app in Swift and constant changes to Xcode. To address this issue, they developed a more flexible CI abstraction by abstracting their CI configuration out of vendor-specific files and moving it into their repository. They also picked jobs to run, triggering them via the API. Lyft decided to self-host macOS machines for CI, which led them to consider Buildkite as a CI provider. The initial trial on self-hosted macOS machines decreased CI times from 20 minutes to 5. Lyft uses Buildkite's dynamic pipelines and generates the pipeline using a Python script that queries GitHub for changed files and Bazel for build targets affected by those changes, resulting in significant improvements in CI utilization and developer experience.
Company
Buildkite
Date published
March 25, 2022
Author(s)
Mel Kaulfuss
Word count
1236
Language
English
Hacker News points
8