Home / Companies / Buildkite / Blog / Post Details
Content Deep Dive

How Lyft's mobile team does mobile CI at scale

Blog post from Buildkite

Post Details
Company
Date Published
Author
Mel Kaulfuss
Word Count
1,229
Language
English
Hacker News Points
-
Summary

Keith Smiley, a Principal Engineer at Lyft, shared insights into the company's continuous integration (CI) evolution at UnblockConf '21, highlighting their transition to Buildkite and the integration of Bazel for iOS support. The journey began with challenges such as slow build times on macOS due to Apple's Xcode changes and the inefficiencies of compiling Swift. To tackle these, Lyft developed a flexible CI system that abstracts configurations, selects jobs via a fast Linux intermediary, and triggers jobs through APIs, allowing for diverse CI provider testing. The team moved towards self-hosting macOS machines to alleviate hosted service limitations, significantly reducing CI times from 20 to 5 minutes with Buildkite. Buildkite's dynamic pipelines, coupled with Lyft's custom scripts like generate_pipeline.py, optimize CI processes by querying GitHub and Bazel to determine necessary build tasks, thus improving CI machine utilization and developer experience. This setup allows Lyft to efficiently handle thousands of CI builds weekly, ensuring better resource allocation and reducing potential build bottlenecks.