React Native DevOps Guide
Part 5: Getting the most out of your Jenkins agent
Part 6: Running CodePush deployments
Part 7: Testing: Simulator, Device, Integration
I’ve spent the last two years of my life totally invested in React Native (RN) as the Lead Mobile Engineer at Earn.com. Through that time, I have run countless number of React Native builds, tests, and deployments. I’ve approached the devops problem in a number of ways, but the best and most consistent approach I have found is using Jenkins and Fastlane, with JS and Shell scripts to glue the system together.
This guide encompasses the majority of devops knowledge I obtained building and releasing the Earn.com mobile app.
What are we building?
Here’s the high level flow diagram for the entire system. Each part of the tutorial will address a portion of the system diagram below.
What to expect
Each section is broken down into two parts — concepts and walkthrough.
- Concepts break down the thought process and approach for design decisions that are seen in the walkthrough.
- Walkthroughs have step-by-step instructions and companion code.
The series assumes you have access to the following.
- A RN app to work with
- Familiarity with RN deployments
- Jenkins master, permissions to add agents, change jobs
- GitHub repository, permissions to add new users to the repo
If you do not have all of these in place, don’t worry! There are always alternate paths to achieving an objective. In these cases, the walkthrough section of each tutorial may not match your configuration. Concepts presented will hold true for many different configurations.
If you work for a smaller company or freelance, you may not have access to an Jenkins master. In this case, it is acceptable to use the dedicated agent hardware to run a Jenkins master instance.