Skip to content

Commit 71d4d96

Browse files
committed
Merge commit '5e6fed361c1a95b770c9d9b2dd7bb49676fa95e0' into 0.74-stable
2 parents 23a33f2 + 5e6fed3 commit 71d4d96

File tree

428 files changed

+6242
-3569
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

428 files changed

+6242
-3569
lines changed

.circleci/config.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,23 @@ parameters:
1212
default: false
1313
type: boolean
1414

15-
release_latest:
15+
run_nightly_workflow:
1616
default: false
1717
type: boolean
1818

1919
release_version:
20-
default: "9999"
20+
default: ""
2121
type: string
2222

23-
run_nightly_workflow:
23+
release_monorepo_packages_version:
24+
default: ""
25+
type: string
26+
27+
release_tag:
28+
default: ""
29+
type: string
30+
31+
release_dry_run:
2432
default: false
2533
type: boolean
2634

.circleci/configurations/commands.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ commands:
3131
- restore_cache:
3232
key: *rbenv_cache_key
3333
- run:
34-
name: Bundle Install
34+
name: Install the proper Ruby and run Bundle install
3535
command: |
3636
# Check if rbenv is installed. CircleCI is migrating to rbenv so we may not need to always install it.
3737
@@ -58,8 +58,10 @@ commands:
5858
# Set ruby dependencies
5959
rbenv global << parameters.ruby_version >>
6060
if [[ << parameters.ruby_version >> == "2.6.10" ]]; then
61+
rbenv rehash
6162
gem install bundler -v 2.4.22
6263
else
64+
rbenv rehash
6365
gem install bundler
6466
fi
6567
bundle check || bundle install --path vendor/bundle --clean

.circleci/configurations/executors.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ executors:
3333
<<: *defaults
3434
macos:
3535
xcode: *xcode_version
36-
resource_class: macos.x86.medium.gen2
36+
resource_class: macos.m1.medium.gen1
3737
environment:
38-
- BUILD_FROM_SOURCE: true
38+
- RCT_BUILD_HERMES_FROM_SOURCE: true
3939
reactnativeios-lts:
4040
<<: *defaults
4141
macos:
42-
xcode: '14.3.1'
43-
resource_class: macos.x86.medium.gen2
42+
xcode: '15.1'
43+
resource_class: macos.m1.medium.gen1
4444
environment:
45-
- BUILD_FROM_SOURCE: true
45+
- RCT_BUILD_HERMES_FROM_SOURCE: true

.circleci/configurations/jobs.yml

Lines changed: 70 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ jobs:
116116
executor: reactnativeios
117117
parameters:
118118
ruby_version:
119-
default: "2.7.7"
119+
default: "2.7.8"
120120
description: The version of ruby that must be used
121121
type: string
122122
steps:
@@ -599,7 +599,7 @@ jobs:
599599
environment:
600600
- HERMES_WS_DIR: *hermes_workspace_root
601601
- HERMES_VERSION_FILE: "packages/react-native/sdks/.hermesversion"
602-
- BUILD_FROM_SOURCE: true
602+
- RCT_BUILD_HERMES_FROM_SOURCE: true
603603
steps:
604604
- run:
605605
name: Install dependencies
@@ -780,7 +780,7 @@ jobs:
780780
default: "iphoneos"
781781
description: The Hermes Slice that this job has to build
782782
type: enum
783-
enum: ["macosx", "iphoneos", "iphonesimulator", "catalyst"]
783+
enum: ["macosx", "iphoneos", "iphonesimulator", "catalyst", "xros", "xrsimulator"]
784784
executor: reactnativeios
785785
environment:
786786
- HERMES_WS_DIR: *hermes_workspace_root
@@ -813,13 +813,18 @@ jobs:
813813
exit 0
814814
fi
815815
816+
export RELEASE_VERSION=$(cat /tmp/react-native-version)
816817
if [[ "$SLICE" == "macosx" ]]; then
817818
echo "[HERMES] Building Hermes for MacOS"
818-
BUILD_TYPE="<< parameters.flavor >>" ./utils/build-mac-framework.sh
819-
else
819+
BUILD_TYPE="<< parameters.flavor >>" MACOSX_DEPLOYMENT_TARGET=10.15 ./utils/build-mac-framework.sh
820+
elif [[ "$SLICE" == "xros" ]] || [[ "$SLICE" == "xrsimulator" ]]; then
821+
echo "[HERMES] Building Hermes for XR: $SLICE"
822+
BUILD_TYPE="<< parameters.flavor >>" XROS_DEPLOYMENT_TARGET=1.0 ./utils/build-ios-framework.sh "$SLICE"
823+
elif [[ "$SLICE" == "iphoneos" ]] || [[ "$SLICE" == "iphonesimulator" ]] || [[ "$SLICE" == "catalyst" ]] ; then
820824
echo "[HERMES] Building Hermes for iOS: $SLICE"
821-
BUILD_TYPE="<< parameters.flavor >>" ./utils/build-ios-framework.sh "$SLICE"
825+
BUILD_TYPE="<< parameters.flavor >>" IOS_DEPLOYMENT_TARGET=13.4 ./utils/build-ios-framework.sh "$SLICE"
822826
fi
827+
unset RELEASE_VERSION
823828
824829
echo "Moving from build_$SLICE to $FINAL_PATH"
825830
mv build_"$SLICE" "$FINAL_PATH"
@@ -879,6 +884,10 @@ jobs:
879884
key: << parameters.slice_base_cache_key >>-iphonesimulator-<< parameters.flavor >>
880885
- restore_cache:
881886
key: << parameters.slice_base_cache_key >>-catalyst-<< parameters.flavor >>
887+
- restore_cache:
888+
key: << parameters.slice_base_cache_key >>-xros-<< parameters.flavor >>
889+
- restore_cache:
890+
key: << parameters.slice_base_cache_key >>-xrsimulator-<< parameters.flavor >>
882891
- run:
883892
name: "Move back build folders"
884893
command: |
@@ -887,6 +896,8 @@ jobs:
887896
mv build_iphoneos_<< parameters.flavor >> build_iphoneos
888897
mv build_iphonesimulator_<< parameters.flavor >> build_iphonesimulator
889898
mv build_catalyst_<< parameters.flavor >> build_catalyst
899+
mv build_xros_<< parameters.flavor >> build_xros
900+
mv build_xrsimulator_<< parameters.flavor >> build_xrsimulator
890901
- run:
891902
name: "Prepare destroot folder"
892903
command: |
@@ -898,7 +909,11 @@ jobs:
898909
command: |
899910
cd ./packages/react-native/sdks/hermes || exit 1
900911
echo "[HERMES] Creating the universal framework"
912+
export IOS_DEPLOYMENT_TARGET=13.4
913+
export RELEASE_VERSION=$(cat /tmp/react-native-version)
901914
./utils/build-ios-framework.sh build_framework
915+
unset RELEASE_VERSION
916+
unset IOS_DEPLOYMENT_TARGET
902917
- run:
903918
name: Package the Hermes Apple frameworks
904919
command: |
@@ -933,6 +948,8 @@ jobs:
933948
mkdir -p "$WORKING_DIR/catalyst"
934949
mkdir -p "$WORKING_DIR/iphoneos"
935950
mkdir -p "$WORKING_DIR/iphonesimulator"
951+
mkdir -p "$WORKING_DIR/xros"
952+
mkdir -p "$WORKING_DIR/xrsimulator"
936953
937954
cd ./packages/react-native/sdks/hermes || exit 1
938955
@@ -941,6 +958,8 @@ jobs:
941958
cp -r build_catalyst/$DSYM_FILE_PATH "$WORKING_DIR/catalyst/"
942959
cp -r build_iphoneos/$DSYM_FILE_PATH "$WORKING_DIR/iphoneos/"
943960
cp -r build_iphonesimulator/$DSYM_FILE_PATH "$WORKING_DIR/iphonesimulator/"
961+
cp -r build_xrsimulator/$DSYM_FILE_PATH "$WORKING_DIR/xrsimulator/"
962+
cp -r build_xros/$DSYM_FILE_PATH "$WORKING_DIR/xros/"
944963
945964
DEST_DIR="/tmp/hermes/dSYM/$FLAVOR"
946965
tar -C "$WORKING_DIR" -czvf "hermes.framework.dSYM" .
@@ -1076,14 +1095,20 @@ jobs:
10761095
# -------------------------
10771096
# JOBS: Releases
10781097
# -------------------------
1079-
prepare_package_for_release:
1098+
1099+
# Writes a new commit and tag(s), which will trigger the `publish_release`
1100+
# and `publish_bumped_packages` workflows.
1101+
prepare_release:
10801102
parameters:
10811103
version:
10821104
type: string
1083-
latest:
1084-
type: boolean
1085-
default: false
1086-
dryrun:
1105+
# TODO(T182538198): Required for 0.74.x, where workspace packages are out
1106+
# of sync with react-native. This will be removed for 0.75+.
1107+
monorepo_packages_version:
1108+
type: string
1109+
tag:
1110+
type: string
1111+
dry_run:
10871112
type: boolean
10881113
default: false
10891114
executor: reactnativeios
@@ -1096,16 +1121,41 @@ jobs:
10961121
- brew_install:
10971122
package: cmake
10981123
- run:
1099-
name: "Set new react-native version and commit changes"
1124+
name: Versioning workspace packages
11001125
command: |
1101-
VERSION=<< parameters.version >>
1102-
1103-
if [[ -z "$VERSION" ]]; then
1104-
VERSION=$(grep '"version"' package.json | cut -d '"' -f 4 | head -1)
1105-
echo "Using the version from the package.json: $VERSION"
1106-
fi
1107-
1108-
node ./scripts/releases-ci/prepare-package-for-release.js -v "$VERSION" -l << parameters.latest >> --dry-run << parameters.dryrun >>
1126+
node scripts/releases/set-version "<< parameters.monorepo_packages_version >>" --skip-react-native-version
1127+
- run:
1128+
name: Versioning react-native package
1129+
command: |
1130+
node scripts/releases/set-rn-version.js -v "<< parameters.version >>" --build-type "release"
1131+
- run:
1132+
name: Creating release commit
1133+
command: |
1134+
# I'm seeing failures in automatically detect the email for the
1135+
# agent that should push the commit.
1136+
git config --global user.name "Distiller"
1137+
git config --global user.email "[email protected]"
1138+
1139+
git commit -a -m "Release << parameters.version >>" -m "#publish-packages-to-npm&<< parameters.tag >>"
1140+
git tag -a "v<< parameters.version >>" -m "v<< parameters.version >>"
1141+
env GIT_PAGER=cat git show HEAD
1142+
- when:
1143+
condition:
1144+
equal: ["latest", << parameters.tag >>]
1145+
steps:
1146+
- run:
1147+
name: Updating "latest" tag
1148+
command: |
1149+
git tag -d "latest"
1150+
git push origin :latest
1151+
git tag -a "latest" -m "latest"
1152+
- unless:
1153+
condition: << parameters.dry_run >>
1154+
steps:
1155+
run:
1156+
name: Pushing release commit
1157+
command: |
1158+
git push origin $CIRCLE_BRANCH --follow-tags
11091159
11101160
build_npm_package:
11111161
parameters:

.circleci/configurations/test_workflows/testAll.yml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
55
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
66
jobs:
7-
- prepare_package_for_release:
8-
name: prepare_package_for_release
9-
version: ''
10-
latest : false
11-
dryrun: true
7+
- prepare_release:
8+
name: "prepare_release (dry run test)"
9+
version: "0.0.0"
10+
monorepo_packages_version: "0.0.0"
11+
tag: test
12+
dry_run: true
1213
- prepare_hermes_workspace
1314
- build_android:
1415
release_type: "dry-run"
@@ -24,7 +25,7 @@
2425
matrix:
2526
parameters:
2627
flavor: ["Debug", "Release"]
27-
slice: ["macosx", "iphoneos", "iphonesimulator", "catalyst"]
28+
slice: ["macosx", "iphoneos", "iphonesimulator", "catalyst", "xros", "xrsimulator"]
2829
- build_hermes_macos:
2930
requires:
3031
- build_apple_slices_hermes
@@ -56,8 +57,8 @@
5657
- test_ios_template:
5758
requires:
5859
- build_npm_package
59-
name: "Test Template with Ruby 3.2.0"
60-
ruby_version: "3.2.0"
60+
name: "Test Template with Ruby 3.2.2"
61+
ruby_version: "3.2.2"
6162
architecture: "NewArch"
6263
flavor: "Debug"
6364
executor: reactnativeios-lts
@@ -71,15 +72,15 @@
7172
jsengine: ["Hermes", "JSC"]
7273
use_frameworks: ["StaticLibraries", "DynamicFrameworks"]
7374
exclude:
74-
# This config is tested with Ruby 3.2.0. Let's not double test it.
75+
# This config is tested with Ruby 3.2.2. Let's not double test it.
7576
- flavor: "Debug"
7677
jsengine: "Hermes"
7778
use_frameworks: "StaticLibraries"
7879
- test_ios_rntester:
7980
requires:
8081
- build_hermes_macos
81-
name: "Test RNTester with Ruby 3.2.0"
82-
ruby_version: "3.2.0"
82+
name: "Test RNTester with Ruby 3.2.2"
83+
ruby_version: "3.2.2"
8384
executor: reactnativeios-lts
8485
- test_ios_rntester:
8586
requires:
@@ -95,11 +96,11 @@
9596
# Tested by test_ios-JSC
9697
- jsengine: "JSC"
9798
use_frameworks: "StaticLibraries"
98-
# Tested with Ruby 3.2.0, do not test this twice.
99+
# Tested with Ruby 3.2.2, do not test this twice.
99100
- jsengine: "Hermes"
100101
use_frameworks: "StaticLibraries"
101102
- test_ios_rntester:
102-
run_unit_tests: true
103+
run_unit_tests: false
103104
use_frameworks: "StaticLibraries"
104105
ruby_version: "2.6.10"
105106
requires:

.circleci/configurations/test_workflows/testAndroid.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
55
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
66
jobs:
7-
- prepare_package_for_release:
8-
name: prepare_package_for_release
9-
version: ''
10-
latest : false
11-
dryrun: true
7+
- prepare_release:
8+
name: "prepare_release (dry run test)"
9+
version: "0.0.0"
10+
monorepo_packages_version: "0.0.0"
11+
tag: test
12+
dry_run: true
1213
- prepare_hermes_workspace
1314
- build_android:
1415
release_type: "dry-run"
@@ -24,7 +25,7 @@
2425
matrix:
2526
parameters:
2627
flavor: ["Debug", "Release"]
27-
slice: ["macosx", "iphoneos", "iphonesimulator", "catalyst"]
28+
slice: ["macosx", "iphoneos", "iphonesimulator", "catalyst", "xros", "xrsimulator"]
2829
- build_hermes_macos:
2930
requires:
3031
- build_apple_slices_hermes

.circleci/configurations/test_workflows/testE2E.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
66
jobs:
77
- test_e2e_ios:
8-
ruby_version: "2.7.7"
8+
ruby_version: "2.7.8"
99
- test_e2e_android

0 commit comments

Comments
 (0)