Shopify2023-10-18Problem & solution
Mobile Release Engineering at Scale with Shipit Mobile
Summary
Shopify built Shipit Mobile to replace error-prone, manual mobile app releases with a shared platform for creating, viewing, and managing releases. The process creates a release branch from master, builds a candidate for each commit, increments build numbers, and starts separate CI pipelines for testing and release builds. Shipit Mobile uploads the same binary and metadata to distribution channels including Google Play, the App Store, and internal support access, using store APIs and Fastlane, while Slack notifications make release status visible beyond the release captain. Developers can bypass CI when necessary for emergencies, and configuration favors convention over configuration for project metadata. After more than six months in production, the platform reduced release complexity, shortened the release cadence from three weeks to one week, and helped more people become release captains.
Context
Mobile releases involved many manual, error-prone steps, inconsistent team processes, complex and untested scripts, manually managed version and build numbers, and substantial coordination work for the release manager. App-store approval and distribution also prevented the same continuous-delivery model used for web applications.
Approach / What changed
Shipit Mobile provides a shared release platform that manages branches, candidates, build numbers, CI, manual testing, metadata, store uploads, distribution channels, notifications, and release ownership. It uses release branches from master, separate test and build pipelines, Google Play and App Store integrations, Fastlane for iOS uploads, convention-based project configuration, and emergency bypasses for CI restrictions.
Takeaways
Each commit on a release branch creates a candidate with an incremented build number and triggers separate test and release-build CI pipelines.
The same release binary can be distributed through multiple channels, including Google Play, the App Store, and internal access for Shopify’s support team.
After more than six months in production, Shipit Mobile helped reduce the release cadence from three weeks to one week and made the Release Captain role easier to transfer.
Source and freshness
- Source
- shopify.engineering
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.