Engineering

Tech Talks: Deploying a React Native App with Azure DevOps

June 16, 2022
5 minute read
Jamie MacDonald

As part of our regular Tech Talks series, Jamie describes setting up deployment pipelines for our new React Native app.

Extending our Azure DevOps Pipelines

We have recently launched our React Native (RN) app into both the Google Play Store (Android) and the iOS App Store. To streamline our releases, and to ensure we have a safe and repeatable release process, we have extended our existing suite of Azure DevOps pipelines.

While the RN app is a single codebase, we needed to build individual pipelines to target the respective app stores. With the Android launch coming first, the Google Play Store was the obvious place to start.

Android

Before reaching a production-ready state and setting up the new pipelines we had a set process to build and deploy the Android app from our own machines. This manual process acted as the blueprint for building out our new pipelines.

Our Android RN deployment pipeline

Our Android deployment pipeline can be split into four sections:

iOS

With the Android app able to be built and deployed to the Google Play Store, we moved on to deploying to the iOS App Store. To do this we make use of the built-in Xcode tasks available on Azure DevOps.

Our iOS RN deployment pipeline

Deployment of our iOS app can also be split into the same four sections:

The final step in our iOS pipeline is sending a slack message to a dedicated RN Testing channel, this lets us know the build is complete and ready to test!

Impact

After making these changes, we now have full confidence that we were always deploying the latest and greatest version of the app. It has moved us from a complicated multi-step manual process, to simply needing to press one button. The use of .env files means we can build our app for any of our testing or production environments and we also no longer need to have secure credentials saved on our local machines - these can all be stored safely in the Azure Secure File Store.

These improvements are a huge time saver and allow engineers to focus on solving the next interesting problem rather than waiting for builds and deployments to complete.

Next Steps

The current deployment process unfortunately still involves some manual work due to both app stores requiring unique build numbers for each deployment. Currently, this involves either manually updating the numbers before we deploy or running a script that updates them for us.

The next step in our deployment pipelines will be making this an entirely automated process.

More Blogs

Dietary fibre: Why it’s important and how to get more into your diet

Generic vs. Brand-name medication

In this blog piece we discuss the differences between generic and brand medication, how generic medicines are marketed and whether their efficacy is similar to brand medication.

Read More

Learn more about Phlo

Track your deliverys from our pharmacy to your door

Bookable delivery slots

Chat with our pharmacy team when you need them

Switch to Phlo

Further Reading

5 minute read

A day in the life of Noah Valuks, Junior Software Engineer

Learn More
7 minute read

A day in the life of a senior software engineer

Learn More