Our iOS CI/CD Journey At Nextdoor
Article Summary
Su Khai Koh from Nextdoor reveals why their team willingly accepted slower build times in exchange for something more valuable: stability and sanity.
Nextdoor's iOS team migrated from on-premise Jenkins infrastructure to Bitrise, a cloud-based CI/CD solution. The article details their decision-making process, the problems they solved, and practical implementation tips for other teams considering a similar move.
Key Takeaways
- On-premise Jenkins caused maintenance nightmares, unstable builds, and queue bottlenecks
- Cloud builds run 20-30% slower but queue times dropped significantly
- Shareable workflows and remote screen sharing became game-changing productivity tools
- Team prioritized build stability over raw speed after careful tradeoff analysis
Nextdoor traded slightly longer build times for dramatically more stable CI/CD, freeing engineers from hours of infrastructure troubleshooting to focus on product development.
About This Article
Nextdoor's Jenkins setup had build isolation problems. Old build caches kept breaking new builds, and network failures made their iOS CI/CD pipeline unreliable.
Su Khai Koh's team looked at CircleCI, TravisCI, and GitHub Actions, then chose Bitrise. It had cloud elasticity, a better interface, Xcode beta testing, per-branch caching, and easier code signing.
They built utility workflows like _swiftlint, _build_ipa, and _deploy_to_firebase that connected to primary and rc workflows through environment variables. This meant engineers didn't have to edit workflows by hand anymore, and deployments stayed consistent across Firebase App Distribution channels.