-
Notifications
You must be signed in to change notification settings - Fork 24.4k
Release Testing
Luna edited this page Feb 1, 2022
·
9 revisions
- Have clone of
react-native
repo and be on the release candidate branch.# Checkout relevant branch react-native$ git checkout 0.66-stable react-native$ yarn install # I needed a .watchmanconfig because `npm start` would fail without it. react-native$ echo '{}' > .watchmanconfig
- Have Android and iOS development environment set-up. Follow instuctions for macOS/iOS and macOS/Android from React Native docs
- Android
- Android emulator or device set up
- Gradle should now install the appropriate ndk. Verify that you have in your path the
ANDROID_NDK
variable, pointing to it. - In case you are on macos Catalina (or higher), you might also need to run
sudo xattr -r -d com.apple.quarantine /path/to/ndk
to avoid the e2e script to fail. That said, this should not happen anymore since from NDK 21 and higher the Android team started signing the NDK.*
- iOS
- Xcode
- Cocoapods
- Android
- covered by running
test-manual-e2e.sh
(See issue about supporting those "manual" cases)
Variant | RNTester | Template App |
---|---|---|
Android - JSC | via test-manual-e2e.sh
|
via test-manual-e2e.sh
|
Android - Hermes | via test-manual-e2e.sh
|
manual |
iOS - JSC | via test-manual-e2e.sh
|
via test-manual-e2e.sh
|
iOS - Hermes | via test-manual-e2e.sh
|
manual |
Link to branch: | |
---|---|
Project info | |
Name | |
Starting RN version | <add me, ex. RN 0.65.1> |
Hermes on iOS | yes/no |
Hermes on Android | yes/no |
Tested - iOS | |
Fast Refresh | ✅/🚨/🙅♂️ |
Debug/dev build on Simulator | ✅/🚨/🙅♂️ |
Debug/dev build on Device | ✅/🚨/🙅♂️ |
Production build | ✅/🚨/🙅♂️ |
Chrome remote debugger | ✅/🚨/🙅♂️ |
Hermes debugger | ✅/🚨/🙅♂️ |
Flipper debugger | ✅/🚨/🙅♂️ |
Tested - Android | |
Fast Refresh | ✅/🚨/🙅♂️ |
Debug/dev build on Emulator | ✅/🚨/🙅♂️ |
Debug/dev build on Device | ✅/🚨/🙅♂️ |
Production build | ✅/🚨/🙅♂️ |
Chrome remote debugger | ✅/🚨/🙅♂️ |
Hermes debugger | ✅/🚨/🙅♂️ |
Flipper debugger | ✅/🚨/🙅♂️ |
-
Delete RNTester and RNTestProject from your Android emulator/ iOS simulator if leftover from previous test
-
Remove any temporary files
git clean -fdx
-
Install dependencies
yarn install pushd packages/rn-tester pod install --repo-update popd
-
Go through Test Checklist for variants supported by
test-manual-e2e
script
# This will run you through the different variants in **Test Dimensions** table
react-native$ ./scripts/test-manual-e2e.sh
- Go through Test Checklist for Hermes enabled template app.
-
Note: script will install template app at
/tmp/RNTestProject
-
Enable Hermes for Android template app, clean, build and go through Test Checklist
# Update `/tmp/RNTestProject/android/app/build.gradle` to `enableHermes` project.ext.react = [ enableHermes: true, // clean and rebuild if changing ] # Clean and rebuild /tmp/RNTestProject/android$ ./gradlew clean /tmp/RNTestProject$ npx react-native run-android
-
Enable Hermes for iOS template app, clean, build and go through Test Checklist
# Update `/tmp/RNTestProject/ios/Podfile` and then run `pod install` use_react_native!( :path => config[:reactNativePath], # to enable hermes on iOS, change `false` to `true` and then install pods :hermes_enabled => true ) # Install pods and run /tmp/RNTestProject/ios$ pod install /tmp/RNTestProject$ npx react-native run-ios
- Running your iOS project with
--release
configuration - Attempting to upload your app to TestFlight
React Native • Contributor Guide • Getting Started • Website
How to Contribute
- How to File an Issue ↗
- Triaging GitHub Issues ↗
- How to Label an Issue ↗
- Managing Pull Requests ↗
- How to Contribute Code ↗
- How to Open a Pull Request ↗
- How to Build from Source ↗
Tests
Releases
More Resources
- Contributor Guide ↗
- Code of Conduct ↗
- Contributor License Agreement ↗
- Discussions and Proposals ↗
- Bots Reference ↗
Documentation