Skip to content

Commit ba3b836

Browse files
committed
[CI] Move machines to M1 for 0.73
1 parent c7a1f24 commit ba3b836

File tree

10 files changed

+179
-28
lines changed

10 files changed

+179
-28
lines changed

.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
@@ -62,8 +62,10 @@ commands:
6262
# Set ruby dependencies
6363
rbenv global << parameters.ruby_version >>
6464
if [[ $(echo << parameters.ruby_version >> | awk -F'.' '{print $1}') == "2" ]]; then
65+
rbenv rehash
6566
gem install bundler -v 2.4.22
6667
else
68+
rbenv rehash
6769
gem install bundler
6870
fi
6971
bundle check || bundle install --path vendor/bundle --clean

.circleci/configurations/executors.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@ 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:
3838
- RCT_BUILD_HERMES_FROM_SOURCE: true

.circleci/configurations/jobs.yml

Lines changed: 1 addition & 1 deletion
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:

.circleci/configurations/test_workflows/testAll.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@
5656
- test_ios_template:
5757
requires:
5858
- build_npm_package
59-
name: "Test Template with Ruby 3.2.0"
60-
ruby_version: "3.2.0"
59+
name: "Test Template with Ruby 3.2.2"
60+
ruby_version: "3.2.2"
6161
architecture: "NewArch"
6262
flavor: "Debug"
6363
- test_ios_template:
@@ -149,8 +149,8 @@
149149
- test_ios_rntester:
150150
requires:
151151
- build_hermes_macos
152-
name: "Test RNTester with Ruby 3.2.0"
153-
ruby_version: "3.2.0"
152+
name: "Test RNTester with Ruby 3.2.2"
153+
ruby_version: "3.2.2"
154154
architecture: "NewArch"
155155
- test_ios_rntester:
156156
requires:

.circleci/configurations/test_workflows/testE2E.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
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.9"
99
# This is not stable
1010
# - test_e2e_android

.circleci/configurations/test_workflows/testIOS.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@
4343
- build_hermes_macos
4444
- build_hermesc_windows
4545
- test_e2e_ios:
46-
ruby_version: "2.7.7"
46+
ruby_version: "2.7.8"
4747
- test_ios_template:
4848
requires:
4949
- build_npm_package
50-
name: "Test Template with Ruby 3.2.0"
51-
ruby_version: "3.2.0"
50+
name: "Test Template with Ruby 3.2.2"
51+
ruby_version: "3.2.2"
5252
architecture: "NewArch"
5353
flavor: "Debug"
5454
- test_ios_template:
@@ -140,8 +140,8 @@
140140
- test_ios_rntester:
141141
requires:
142142
- build_hermes_macos
143-
name: "Test RNTester with Ruby 3.2.0"
144-
ruby_version: "3.2.0"
143+
name: "Test RNTester with Ruby 3.2.2"
144+
ruby_version: "3.2.2"
145145
architecture: "NewArch"
146146
- test_ios_rntester:
147147
requires:

.circleci/configurations/top_level.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -71,32 +71,32 @@ references:
7171

7272
cache_keys:
7373
checkout_cache_key: &checkout_cache_key v1-checkout
74-
gems_cache_key: &gems_cache_key v1-gems-{{ checksum "Gemfile.lock" }}
74+
gems_cache_key: &gems_cache_key v1-gems-{{ arch }}-{{ checksum "Gemfile.lock" }}
7575
gradle_cache_key: &gradle_cache_key v3-gradle-{{ .Environment.CIRCLE_JOB }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "packages/react-native/ReactAndroid/gradle.properties" }}
7676
yarn_cache_key: &yarn_cache_key v6-yarn-cache-{{ .Environment.CIRCLE_JOB }}
77-
rbenv_cache_key: &rbenv_cache_key v1-rbenv-{{ checksum "/tmp/required_ruby" }}
77+
rbenv_cache_key: &rbenv_cache_key v1-rbenv-{{ arch }}-{{ checksum "/tmp/required_ruby" }}
7878
hermes_workspace_cache_key: &hermes_workspace_cache_key v5-hermes-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/hermes/hermesversion" }}
7979
hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
8080
hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
8181
hermes_linux_cache_key: &hermes_linux_cache_key v1-hermes-{{ .Environment.CIRCLE_JOB }}-linux-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
8282
hermes_windows_cache_key: &hermes_windows_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-windows-{{ checksum "/Users/circleci/project/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
8383
# Hermes iOS
84-
hermesc_apple_cache_key: &hermesc_apple_cache_key v2-hermesc-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
85-
hermes_apple_slices_cache_key: &hermes_apple_slices_cache_key v2-hermes-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
86-
hermes_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v4-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
87-
hermes_tarball_release_cache_key: &hermes_tarball_release_cache_key v3-hermes-tarball-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
88-
hermes_macosx_bin_release_cache_key: &hermes_macosx_bin_release_cache_key v1-hermes-release-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
89-
hermes_macosx_bin_debug_cache_key: &hermes_macosx_bin_debug_cache_key v1-hermes-debug-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
90-
hermes_dsym_debug_cache_key: &hermes_dsym_debug_cache_key v1-hermes-debug-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
91-
hermes_dsym_release_cache_key: &hermes_dsym_release_cache_key v1-hermes-release-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
84+
hermesc_apple_cache_key: &hermesc_apple_cache_key v3-hermesc-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
85+
hermes_apple_slices_cache_key: &hermes_apple_slices_cache_key v3-hermes-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
86+
hermes_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v5-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
87+
hermes_tarball_release_cache_key: &hermes_tarball_release_cache_key v4-hermes-tarball-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
88+
hermes_macosx_bin_release_cache_key: &hermes_macosx_bin_release_cache_key v2-hermes-release-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
89+
hermes_macosx_bin_debug_cache_key: &hermes_macosx_bin_debug_cache_key v2-hermes-debug-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
90+
hermes_dsym_debug_cache_key: &hermes_dsym_debug_cache_key v2-hermes-debug-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
91+
hermes_dsym_release_cache_key: &hermes_dsym_release_cache_key v2-hermes-release-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
9292
# Cocoapods - RNTester
93-
pods_cache_key: &pods_cache_key v10-pods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock.bak" }}-{{ checksum "packages/rn-tester/Podfile" }}
94-
cocoapods_cache_key: &cocoapods_cache_key v9-cocoapods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock" }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}
95-
rntester_podfile_lock_cache_key: &rntester_podfile_lock_cache_key v7-podfilelock-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}
93+
pods_cache_key: &pods_cache_key v11-pods-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock.bak" }}-{{ checksum "packages/rn-tester/Podfile" }}
94+
cocoapods_cache_key: &cocoapods_cache_key v10-cocoapods-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock" }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}
95+
rntester_podfile_lock_cache_key: &rntester_podfile_lock_cache_key v8-podfilelock-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}
9696

9797
# Cocoapods - Template
98-
template_cocoapods_cache_key: &template_cocoapods_cache_key v4-cocoapods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile.lock" }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock }}
99-
template_podfile_lock_cache_key: &template_podfile_lock_cache_key v4-podfilelock-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock }}
98+
template_cocoapods_cache_key: &template_cocoapods_cache_key v5-cocoapods-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile.lock" }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock }}
99+
template_podfile_lock_cache_key: &template_podfile_lock_cache_key v5-podfilelock-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/iOSTemplateProject/ios/Podfile" }}-{{ checksum "/tmp/week_year" }}-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "packages/rn-tester/Podfile.lock }}
100100

101101
# Windows
102102
windows_yarn_cache_key: &windows_yarn_cache_key v1-win-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
*
8+
* @format
9+
* @oncall react_native
10+
*/
11+
12+
import type { ConfigT } from "metro-config";
13+
export { mergeConfig } from "metro-config";
14+
/**
15+
* Get the base Metro configuration for a React Native project.
16+
*/
17+
export declare function getDefaultConfig(projectRoot: string): ConfigT;
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true,
5+
});
6+
exports.getDefaultConfig = getDefaultConfig;
7+
Object.defineProperty(exports, "mergeConfig", {
8+
enumerable: true,
9+
get: function () {
10+
return _metroConfig.mergeConfig;
11+
},
12+
});
13+
var _metroConfig = require("metro-config");
14+
/**
15+
* Copyright (c) Meta Platforms, Inc. and affiliates.
16+
*
17+
* This source code is licensed under the MIT license found in the
18+
* LICENSE file in the root directory of this source tree.
19+
*
20+
*
21+
* @format
22+
* @oncall react_native
23+
*/
24+
25+
const INTERNAL_CALLSITES_REGEX = new RegExp(
26+
[
27+
"/Libraries/BatchedBridge/MessageQueue\\.js$",
28+
"/Libraries/Core/.+\\.js$",
29+
"/Libraries/LogBox/.+\\.js$",
30+
"/Libraries/Network/.+\\.js$",
31+
"/Libraries/Pressability/.+\\.js$",
32+
"/Libraries/Renderer/implementations/.+\\.js$",
33+
"/Libraries/Utilities/.+\\.js$",
34+
"/Libraries/vendor/.+\\.js$",
35+
"/Libraries/WebSocket/.+\\.js$",
36+
"/Libraries/YellowBox/.+\\.js$",
37+
"/metro-runtime/.+\\.js$",
38+
"/node_modules/@babel/runtime/.+\\.js$",
39+
"/node_modules/@react-native/js-polyfills/.+\\.js$",
40+
"/node_modules/event-target-shim/.+\\.js$",
41+
"/node_modules/invariant/.+\\.js$",
42+
"/node_modules/react-devtools-core/.+\\.js$",
43+
"/node_modules/react-native/index.js$",
44+
"/node_modules/react-refresh/.+\\.js$",
45+
"/node_modules/scheduler/.+\\.js$",
46+
"^\\[native code\\]$",
47+
]
48+
// Make patterns work with both Windows and POSIX paths.
49+
.map((pathPattern) => pathPattern.replaceAll("/", "[/\\\\]"))
50+
.join("|")
51+
);
52+
/**
53+
* Get the base Metro configuration for a React Native project.
54+
*/
55+
function getDefaultConfig(projectRoot) {
56+
const config = {
57+
resolver: {
58+
resolverMainFields: ["react-native", "browser", "main"],
59+
platforms: ["android", "ios"],
60+
unstable_conditionNames: ["require", "import", "react-native"],
61+
},
62+
serializer: {
63+
// Note: This option is overridden in cli-plugin-metro (getOverrideConfig)
64+
getModulesRunBeforeMainModule: () => [
65+
require.resolve("react-native/Libraries/Core/InitializeCore"),
66+
],
67+
getPolyfills: () => require("@react-native/js-polyfills")(),
68+
isThirdPartyModule({ path: modulePath }) {
69+
return (
70+
INTERNAL_CALLSITES_REGEX.test(modulePath) ||
71+
/(?:^|[/\\])node_modules[/\\]/.test(modulePath)
72+
);
73+
},
74+
},
75+
server: {
76+
port: Number(process.env.RCT_METRO_PORT) || 8081,
77+
},
78+
symbolicator: {
79+
customizeFrame: (frame) => {
80+
const collapse = Boolean(
81+
frame.file != null && INTERNAL_CALLSITES_REGEX.test(frame.file)
82+
);
83+
return {
84+
collapse,
85+
};
86+
},
87+
},
88+
transformer: {
89+
allowOptionalDependencies: true,
90+
assetRegistryPath: "react-native/Libraries/Image/AssetRegistry",
91+
asyncRequireModulePath: require.resolve(
92+
"metro-runtime/src/modules/asyncRequire"
93+
),
94+
babelTransformerPath: require.resolve(
95+
"@react-native/metro-babel-transformer"
96+
),
97+
getTransformOptions: async () => ({
98+
transform: {
99+
experimentalImportSupport: false,
100+
inlineRequires: true,
101+
},
102+
}),
103+
},
104+
watchFolders: [],
105+
};
106+
107+
// Set global hook so that the CLI can detect when this config has been loaded
108+
global.__REACT_NATIVE_METRO_CONFIG_LOADED = true;
109+
return (0, _metroConfig.mergeConfig)(
110+
_metroConfig.getDefaultConfig.getDefaultValues(projectRoot),
111+
config
112+
);
113+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow strict-local
8+
* @format
9+
* @oncall react_native
10+
*/
11+
12+
import type { ConfigT } from "metro-config";
13+
14+
export { mergeConfig } from "metro-config";
15+
16+
/**
17+
* Get the base Metro configuration for a React Native project.
18+
*/
19+
declare export function getDefaultConfig(projectRoot: string): ConfigT;

0 commit comments

Comments
 (0)