![]() We follow a trunk-based development approach in which the release branch is branched off of master. Shipit Mobile Home Creating a New Release in Shipit MobileĪ release starts with a new branch in the repository. Our existing tools for releasing web apps weren't suitable for the mobile release process, so we decided to build something new, Shipit Mobile. Iterate on testing until all the bugs and regressions are fixed.Releasing a new mobile app requires performing multiple steps: They had to make decisions, fix bugs found along the way, communicate with stakeholders, and coordinate other side tasks. Finally, there was a lot of responsibility and burden on the release manager. Release version and build numbers had to be managed manually. Each team had variants of their release scripts, and those scripts were complex and untested. The release process wasn’t transferable-knowledge couldn’t be shared within the same organization and the process was inconvenient and complex. Different teams had different processes to release mobile apps. Releasing new apps was error prone due to the high number of manual steps involved, like selecting the commit to release from or executing the script to upload the binary to the store. ![]() Uploading a new version of our mobile apps to Google Play or the App Store was fraught with problems. This means that we can’t update our apps several times a day even if we wanted to. Third-party services (the app stores) are involved, and software approval and distribution is owned by them. Moreover, a new release isn’t just deploy the latest version of the code from our repository to our infrastructure. If they don’t have automatic updates enabled, finding several updates of the same app multiple times a week, or even a day, is annoying. The Issues With Mobile ReleasesĪutomatic deploys and continuous delivery aren’t possible in mobile for several reasons including approval wait time coordination between developers, designers, and product managers and because our users need to update the app. For this reason, we developed a new tool: Shipit Mobile, a platform to create, view, and manage app releases. We wanted to provide the same level of convenience when releasing mobile apps as we do for web apps, and also take the opportunity to define a framework for all the mobile teams to adopt. In contrast, uploading a new version of one of our mobile apps to Google Play or the App Store involved several manual steps and a lot of human interaction that caused various problems. Merge → Build container → Run CI → Ship to production When a developer working on a web project wants to deploy their changes to production, the process is as simple as: At Shopify, we've invested heavily in tooling for continuous deployment for our web apps. One of the most important phases of software development is releasing it out to the final users.
0 Comments
Leave a Reply. |