Nextdoor Nov 17, 2020

Our iOS CI/CD Journey At Nextdoor

M2 Related OWASP risk: Inadequate Supply Chain Security Learn more →

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

Critical Insight

Nextdoor traded slightly longer build times for dramatically more stable CI/CD, freeing engineers from hours of infrastructure troubleshooting to focus on product development.

The article includes specific workflow configuration patterns that make Bitrise deployments plug-and-play across different environments.

About This Article

Problem

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.

Solution

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.

Impact

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.