DEV Community

loading...
Cover image for Best 11 CI/CD Services for building React Native Project iOS & Android

Best 11 CI/CD Services for building React Native Project iOS & Android

retyui profile image David Narbutovich ・2 min read

A week ago I watched with tears how a pipeline finally finished after almost half an hour. That slow CI service pissed me off every day. And I decided to make my research to find the most powerful CI/CD service!

I just created a blank react native project:

npx react-native init testApp --version 0.63.3
Enter fullscreen mode Exit fullscreen mode

After than I found several services which can build a mobile app and I begin integrating them:

After successful integration and configuration, I started collecting metrics. I was primarily interested in the trace. parameters:

  • Build Speed
  • Rebuild Speed (when developer push new changes and cache invalidate)
  • Hardware
  • Environment

To collect info about hardware and environment I use an envinfo package

// package.json
{
  "scripts": {
    "postinstall": "npx envinfo"
  },
}
Enter fullscreen mode Exit fullscreen mode

All result about hardware & environment ...


Finally lets have a look at results of build speed

top eleven ci  cd services for react-native

Given the limitations, I believe that it is obvious who is the favorite on this list 😉


if you have any question I am glad to discuss them in the comments!

(c) MurAmur

Discussion (5)

pic
Editor guide
Collapse
stuartforrestinfinity profile image
stuartforrest-infinity

Apologies if I'm missing something but it isn't clear to me which service is concluded here as the winner, I think it might be GitHub Actions just because it has a relatively quick Android build and the only highlighted set of results that also has results for iOS, is that right?

With some aggressive caching strategies, including that of iOS binaries we have had success with a 12-15 minute pipeline that includes test runs (Detox UI and unit) as well as Android and iOS builds. We didn't get out of the gate with that of course but evolved it over time and similar frustrations over pipeline execution time.

I think this is a great start at investigating the various CICD providers in for React Native projects and sharing different approaches to optimising the pipelines/build would be really interesting.

Collapse
retyui profile image
David Narbutovich Author

I found a way to cache iOS build
And now our app build is 9 minutes long!!!
dev.to/retyui/react-native-how-spe...

Collapse
stuartforrestinfinity profile image
stuartforrest-infinity

That is nice! One of our approaches was caching the iOS build and injecting the JS bundle into it if native dependencies hadn't changed. We were in a position where the native dependencies didn't change for most builds once the app had some maturity.

Thread Thread
retyui profile image
David Narbutovich Author

Could you please share knowledge how inject a js bundle into build

Thread Thread
stuartforrestinfinity profile image
stuartforrest-infinity

I'll put together a post and link to it here :)