Skip to content

chore(examples): Apply RNRepo to FabricExample#3963

Merged
kkafar merged 5 commits intosoftware-mansion:mainfrom
radoslawrolka:rolkrado/apply-rnrepo
May 4, 2026
Merged

chore(examples): Apply RNRepo to FabricExample#3963
kkafar merged 5 commits intosoftware-mansion:mainfrom
radoslawrolka:rolkrado/apply-rnrepo

Conversation

@radoslawrolka
Copy link
Copy Markdown
Contributor

Description

Adds RNRepo build-tools integration to FabricExample so that CI builds can consume pre-built native dependencies instead of compiling them from scratch, speeding up CI.

The integration is guarded by CI=true / ENV['CI'] environment variables, so local development is unaffected.

Changes

  • FabricExample/android/build.gradle — resolves @rnrepo/build-tools via Node and adds its Gradle plugin JAR to the buildscript classpath.
  • FabricExample/android/app/build.gradle — applies org.rnrepo.tools.prebuilds-plugin when running in CI.
  • FabricExample/ios/Podfile — requires the RNRepo CocoaPods plugin and calls rnrepo_post_install in the post_install hook, both gated on ENV['CI'].
  • FabricExample/package.json — adds @rnrepo/build-tools ~0.1.3-beta.0 as a dev dependency.

Performance

CI build time comparison (rnrepo vs baseline):

Platform Category rnrepo basic Faster
Android Without runner cache 6:53 avg 8:35 avg 19.8%
Android With runner cache 3:17 avg 5:29 avg 40.1%
iOS Without runner cache 6:22 6:16 -1.6%
iOS With runner cache 6:28 avg 6:18 avg -2.6%
iOS With runner cache and prebuilt rncore 3:31 avg 4:01 avg 12.4%

Android sees the biggest wins (~20% standard, ~40% with cache). iOS gains are visible when rncore is prebuilt (~12%) (tracked in #3955).

Test plan

  • Verified that a local build (without CI=true) still works without any RNRepo-related side effects.
  • CI run with CI=true should pick up pre-built artifacts via the RNRepo plugin on both Android and iOS.

@radoslawrolka radoslawrolka force-pushed the rolkrado/apply-rnrepo branch from ce2be8d to ed2aa91 Compare May 4, 2026 08:16
@radoslawrolka radoslawrolka marked this pull request as draft May 4, 2026 08:18
@radoslawrolka radoslawrolka force-pushed the rolkrado/apply-rnrepo branch from 876e0ee to 11d2460 Compare May 4, 2026 09:05
Comment thread FabricExample/android/build.gradle Outdated
Comment thread FabricExample/android/app/build.gradle Outdated
Comment thread FabricExample/ios/Podfile Outdated
@radoslawrolka radoslawrolka marked this pull request as ready for review May 4, 2026 09:43
@radoslawrolka radoslawrolka force-pushed the rolkrado/apply-rnrepo branch 2 times, most recently from 3eca023 to 8063ab9 Compare May 4, 2026 10:15
buildscript is resolved as first, so it has to be inside, or imported from another gradle file
@kkafar kkafar changed the title Apply rnrepo to FabricExample chore(examples): Apply RNRepo to FabricExample May 4, 2026
Copy link
Copy Markdown
Member

@kkafar kkafar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@kkafar kkafar merged commit 0e56359 into software-mansion:main May 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants