Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade react native environment to 0.72.3 #175

Merged
merged 34 commits into from
Sep 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
0d7dd2a
rename example
jnewc Sep 8, 2023
8dd9667
update lockfiles
jnewc Sep 8, 2023
a403797
Upgrade to 0.72.3 for iOS and Android
jnewc Sep 8, 2023
55e4d0f
Fix gradle dependencies
jnewc Sep 8, 2023
9b02ec5
Fix @types/react-native version
jnewc Sep 8, 2023
10dc1b0
Remove unused function from MainActivity
jnewc Sep 8, 2023
1437180
Fix app id in gradle build file
jnewc Sep 11, 2023
e3c542e
Add github workflow platform to gems lockfile
jnewc Sep 11, 2023
df1afaf
Set node version in workflow
jnewc Sep 11, 2023
3c06413
Update example yarn.lock
jnewc Sep 11, 2023
011c102
Add --check-files flag to yarn cmd in workflow
jnewc Sep 11, 2023
6a154c5
Correct node-version param in workflow
jnewc Sep 11, 2023
c7a7e7c
Test github action by deleting example yarn.lock
jnewc Sep 11, 2023
5a38140
Remove unncessary npm install
jnewc Sep 11, 2023
eee5fb2
Reinstate yarn.lock
jnewc Sep 11, 2023
dc1b72e
Revert yarn command in workflow
jnewc Sep 11, 2023
e10333d
Update livedemostore url in fastfile
jnewc Sep 11, 2023
2bedd10
Fix removeEventListenr declaration
jnewc Sep 11, 2023
3ef7b2f
Update workflows and fastlane to include basic ios build
jnewc Sep 11, 2023
e68c2de
Update workflow job names
jnewc Sep 11, 2023
8013064
Fastlane and workflow fixes
jnewc Sep 11, 2023
3c3eec1
Re-add ruby action for iOS workflow
jnewc Sep 11, 2023
100b57c
Update targets in Gemfiles
jnewc Sep 11, 2023
d9793bb
Add keychain env vars to ios workflow
jnewc Sep 11, 2023
495bf3c
Add missing signing lane
jnewc Sep 11, 2023
62be6e5
Update ios app identifier and add match file
jnewc Sep 11, 2023
7630276
Add matchfile
jnewc Sep 11, 2023
0c278b6
Add ssh key steps to workflow
jnewc Sep 11, 2023
06af321
Add missing match env var to workflow
jnewc Sep 12, 2023
7caf332
Update livestore url for ios fastlane
jnewc Sep 12, 2023
56cf4fe
Add appetize token to fastfile
jnewc Sep 12, 2023
37f4f23
Add missing var to fastfile
jnewc Sep 12, 2023
15b77e1
Re-enable hermes for android in gradle properties
jnewc Sep 12, 2023
45165a0
Remove TODOs for removeListener as it is not part of public interface…
jnewc Sep 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Preview
on: pull_request

jobs:
distribute:
distribute-android:
runs-on: ubuntu-latest

steps:
Expand All @@ -14,20 +14,16 @@ jobs:
ruby-version: "2.6"
bundler-cache: true

- uses: actions/setup-ruby@v1
- uses: actions/setup-node@v3
with:
ruby-version: '2.6'

- name: Install npm
run: |
npm install
node-version: 18

- name: Install packages
run: |
yarn

- name: Preview app on Appetize 🚀
run: bundle exec fastlane preview
run: bundle exec fastlane android preview
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
SOURCE_BRANCH: ${{ github.head_ref }}
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/ios-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Preview

on: pull_request

jobs:
distribute-ios:
runs-on: macos-latest

steps:
- uses: actions/checkout@v2

- name: Select Xcode Version
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa_github_actions
known_hosts: unnecessary
- uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_KEY }}

- uses: ruby/setup-ruby@v1
with:
ruby-version: "2.6"
bundler-cache: true

- uses: actions/setup-ruby@v1
with:
ruby-version: '2.6'

- uses: actions/setup-node@v3
with:
node-version: 18

- name: Install packages
run: |
yarn

- name: Preview app on Appetize 🚀
run: bundle exec fastlane ios preview
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
SOURCE_BRANCH: ${{ github.head_ref }}
APPETIZE_API_TOKEN: ${{ secrets.APPETIZE_API_TOKEN }}
MATCH_KEYCHAIN_NAME: ${{ secrets.MATCH_KEYCHAIN_NAME }}
MATCH_KEYCHAIN_PASSWORD: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
source "https://rubygems.org"

# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"

gem "fastlane"
6 changes: 6 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -210,9 +210,15 @@ GEM

PLATFORMS
arm64-darwin-21
arm64-darwin-22
x86_64-darwin-19
x86_64-linux

DEPENDENCIES
fastlane

RUBY VERSION
ruby 2.6.10p210

BUNDLED WITH
2.3.7
File renamed without changes.
2 changes: 1 addition & 1 deletion example_0_70_6/.eslintrc.js → example/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
root: true,
extends: '@react-native-community',
extends: '@react-native',
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
overrides: [
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion example_0_70_6/Gemfile → example/Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source 'https://rubygems.org'

# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '2.7.5'
ruby ">= 2.6.10"

gem 'cocoapods', '~> 1.11', '>= 1.11.2'
1 change: 1 addition & 0 deletions example_0_70_6/Gemfile.lock → example/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ GEM

PLATFORMS
ruby
x86_64-darwin-19

DEPENDENCIES
cocoapods (~> 1.11, >= 1.11.2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import 'react-native';
import React from 'react';
import App from '../App';

// Note: import explicitly to use the types shiped with jest.
import {it} from '@jest/globals';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apply plugin: "com.android.application"

apply plugin: "com.facebook.react"

import com.android.build.OutputFile

Expand Down Expand Up @@ -82,7 +82,7 @@ project.ext.react = [
enableHermes: true, // clean and rebuild if changing
]

apply from: "../../node_modules/react-native/react.gradle"
//apply from: "../../node_modules/react-native/react.gradle"

/**
* Set this to true to create two separate APKs instead of one:
Expand Down Expand Up @@ -135,7 +135,7 @@ android {
compileSdkVersion rootProject.ext.compileSdkVersion

defaultConfig {
applicationId "com.example.reactnative"
applicationId "com.example_0_70_6"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
Expand Down Expand Up @@ -264,7 +264,7 @@ dependencies {
implementation project(':primerioreactnative')

implementation "io.primer:3ds-android:1.2.0"
implementation "io.primer:ipay88-android:1.0.0"
implementation "io.primer:ipay88-my-android:1.0.0"
implementation "io.primer:klarna-android:1.0.1"

//noinspection GradleDynamicVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,5 @@ protected ReactRootView createRootView() {
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
return reactRootView;
}

@Override
protected boolean isConcurrentRootEnabled() {
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
}
}
23 changes: 23 additions & 0 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext {
buildToolsVersion = "33.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
// We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
ndkVersion = "23.1.7779620"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:5.0.1")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ android.useAndroidX=true
android.enableJetifier=true

# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0
FLIPPER_VERSION=0.182.0

# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
Expand All @@ -39,5 +39,9 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# are providing them.
newArchEnabled=false

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true

ARTIFACTORY_3DS_URL=https://primer.jfrog.io/artifactory/primer-android/
KLARNA_DISTRIBUTION_URL=https://x.klarnacdn.net/mobile-sdk/
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
16 changes: 13 additions & 3 deletions example_0_70_6/android/gradlew → example/android/gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ do
esac
done

APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
Expand Down Expand Up @@ -143,12 +143,16 @@ fi
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
Expand Down Expand Up @@ -205,6 +209,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"

# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi

# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
@rem limitations under the License.
@rem

@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
Expand All @@ -25,7 +25,8 @@
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand All @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Expand Down Expand Up @@ -80,8 +81,11 @@ if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%

:mainEnd
if "%OS%"=="Windows_NT" endlocal
Expand Down
7 changes: 7 additions & 0 deletions example/android/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
rootProject.name = 'example_0_70_6'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')

include ':primerioreactnative'
project(':primerioreactnative').projectDir = new File(rootProject.projectDir, '../../android')
File renamed without changes.
File renamed without changes.
File renamed without changes.
38 changes: 28 additions & 10 deletions example_0_70_6/ios/Podfile → example/ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
"react-native/scripts/react_native_pods.rb",
{paths: [process.argv[1]]},
)', __dir__]).strip

platform :ios, '12.4'
install! 'cocoapods', :deterministic_uuids => false
platform :ios, min_ios_version_supported
prepare_react_native_project!

# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
# dependencies: {
# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end

target 'example_0_70_6' do
config = use_native_modules!
Expand All @@ -13,15 +33,13 @@ target 'example_0_70_6' do
use_react_native!(
:path => config[:reactNativePath],
# Hermes is now enabled by default. Disable by setting this flag to false.
# Upcoming versions of React Native may rely on get_default_flags(), but
# we make it explicit here to aid in the React Native upgrade process.
:hermes_enabled => false,
:hermes_enabled => false, # flags[:hermes_enabled],
:fabric_enabled => flags[:fabric_enabled],
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable the next line.
# :flipper_configuration => FlipperConfiguration.enabled,
# :flipper_configuration => flipper_config,,
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
Expand All @@ -38,10 +56,10 @@ target 'example_0_70_6' do
end

post_install do |installer|
# https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
react_native_post_install(
installer,
# Set `mac_catalyst_enabled` to `true` in order to apply patches
# necessary for Mac Catalyst builds
config[:reactNativePath],
:mac_catalyst_enabled => false
)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
Expand Down
Loading