@@ -116,7 +116,7 @@ jobs:
116
116
executor : reactnativeios
117
117
parameters :
118
118
ruby_version :
119
- default : " 2.7.7 "
119
+ default : " 2.7.8 "
120
120
description : The version of ruby that must be used
121
121
type : string
122
122
steps :
@@ -599,7 +599,7 @@ jobs:
599
599
environment :
600
600
- HERMES_WS_DIR : *hermes_workspace_root
601
601
- HERMES_VERSION_FILE : " packages/react-native/sdks/.hermesversion"
602
- - BUILD_FROM_SOURCE : true
602
+ - RCT_BUILD_HERMES_FROM_SOURCE : true
603
603
steps :
604
604
- run :
605
605
name : Install dependencies
@@ -780,7 +780,7 @@ jobs:
780
780
default : " iphoneos"
781
781
description : The Hermes Slice that this job has to build
782
782
type : enum
783
- enum : ["macosx", "iphoneos", "iphonesimulator", "catalyst"]
783
+ enum : ["macosx", "iphoneos", "iphonesimulator", "catalyst", "xros", "xrsimulator" ]
784
784
executor : reactnativeios
785
785
environment :
786
786
- HERMES_WS_DIR : *hermes_workspace_root
@@ -813,13 +813,18 @@ jobs:
813
813
exit 0
814
814
fi
815
815
816
+ export RELEASE_VERSION=$(cat /tmp/react-native-version)
816
817
if [[ "$SLICE" == "macosx" ]]; then
817
818
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
820
824
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"
822
826
fi
827
+ unset RELEASE_VERSION
823
828
824
829
echo "Moving from build_$SLICE to $FINAL_PATH"
825
830
mv build_"$SLICE" "$FINAL_PATH"
@@ -879,6 +884,10 @@ jobs:
879
884
key : << parameters.slice_base_cache_key >>-iphonesimulator-<< parameters.flavor >>
880
885
- restore_cache :
881
886
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 >>
882
891
- run :
883
892
name : " Move back build folders"
884
893
command : |
@@ -887,6 +896,8 @@ jobs:
887
896
mv build_iphoneos_<< parameters.flavor >> build_iphoneos
888
897
mv build_iphonesimulator_<< parameters.flavor >> build_iphonesimulator
889
898
mv build_catalyst_<< parameters.flavor >> build_catalyst
899
+ mv build_xros_<< parameters.flavor >> build_xros
900
+ mv build_xrsimulator_<< parameters.flavor >> build_xrsimulator
890
901
- run :
891
902
name : " Prepare destroot folder"
892
903
command : |
@@ -898,7 +909,11 @@ jobs:
898
909
command : |
899
910
cd ./packages/react-native/sdks/hermes || exit 1
900
911
echo "[HERMES] Creating the universal framework"
912
+ export IOS_DEPLOYMENT_TARGET=13.4
913
+ export RELEASE_VERSION=$(cat /tmp/react-native-version)
901
914
./utils/build-ios-framework.sh build_framework
915
+ unset RELEASE_VERSION
916
+ unset IOS_DEPLOYMENT_TARGET
902
917
- run :
903
918
name : Package the Hermes Apple frameworks
904
919
command : |
@@ -933,6 +948,8 @@ jobs:
933
948
mkdir -p "$WORKING_DIR/catalyst"
934
949
mkdir -p "$WORKING_DIR/iphoneos"
935
950
mkdir -p "$WORKING_DIR/iphonesimulator"
951
+ mkdir -p "$WORKING_DIR/xros"
952
+ mkdir -p "$WORKING_DIR/xrsimulator"
936
953
937
954
cd ./packages/react-native/sdks/hermes || exit 1
938
955
@@ -941,6 +958,8 @@ jobs:
941
958
cp -r build_catalyst/$DSYM_FILE_PATH "$WORKING_DIR/catalyst/"
942
959
cp -r build_iphoneos/$DSYM_FILE_PATH "$WORKING_DIR/iphoneos/"
943
960
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/"
944
963
945
964
DEST_DIR="/tmp/hermes/dSYM/$FLAVOR"
946
965
tar -C "$WORKING_DIR" -czvf "hermes.framework.dSYM" .
@@ -1076,14 +1095,20 @@ jobs:
1076
1095
# -------------------------
1077
1096
# JOBS: Releases
1078
1097
# -------------------------
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 :
1080
1102
parameters :
1081
1103
version :
1082
1104
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 :
1087
1112
type : boolean
1088
1113
default : false
1089
1114
executor : reactnativeios
@@ -1096,16 +1121,41 @@ jobs:
1096
1121
- brew_install :
1097
1122
package : cmake
1098
1123
- run :
1099
- name : " Set new react-native version and commit changes "
1124
+ name : Versioning workspace packages
1100
1125
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
1109
1159
1110
1160
build_npm_package :
1111
1161
parameters :
0 commit comments