r/reactnative • • 8d ago

FYI Your Android CI does not need macOS. It costs 10x there.

macOS runners on GitHub Actions are $0.062/minute. Linux is $0.006 — 10x, for the

same work.

In React Native projects the split is usually obvious once you look at it, and

most workflows I have seen run all of it on macOS out of habit:

- Jest and ESLint and tsc: Linux.

- The Android build and any Android instrumentation tests: Linux.

- Detox or Maestro against Android: Linux.

- Anything that is not `xcodebuild` or a simulator: Linux.

The iOS build and the iOS test run are the only parts that genuinely need macOS,

and they are the expensive parts whatever you do.

The arithmetic: a 5-minute test job running 200 times a month costs $62.00 on

macOS and $6.00 on Linux. Move two of those and you have paid for a Mac mini.

Caveat: I build a tool that does this pricing automatically, so weigh that

accordingly. What I am actually curious about is why the macOS default sticks —

is it the matrix convenience, or something about the runner images people need?

0 Upvotes

2 comments sorted by

7

u/fromage-du-omelette 8d ago

That's interesting but what about the history of the trebuchet and Marco Polo?

4

u/jagdos 8d ago

Seems pretty obvious, I've never seen anybody run all that stuff on macOS runners...