Skip to content

Commit 70efbf1

Browse files
committed
Derive artifacts resolver package name from --hybrid flag
1 parent cbfc5cb commit 70efbf1

5 files changed

Lines changed: 13 additions & 11 deletions

File tree

.github/workflows/buildIOS.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ jobs:
120120
- name: Resolve react-native artifact version
121121
id: resolve-rn-artifacts
122122
run: |
123-
VERSION=$(bun scripts/artifacts-utils/resolve-artifacts.ts --platform=ios --package=react-hybrid --hybrid=true --new-dot-root="$GITHUB_WORKSPACE" | jq -r '.version // "source"')
123+
VERSION=$(bun scripts/artifacts-utils/resolve-artifacts.ts --platform=ios --hybrid=true --new-dot-root="$GITHUB_WORKSPACE" | jq -r '.version // "source"')
124124
echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"
125125
126126
- name: Cache react-native artifacts

scripts/artifacts-utils/android/ExpensiUtils.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ ext.ExpensiUtils = new Object() {
2727
}
2828

2929
// Returns [buildFromSource, version, githubUsername, githubToken]; any failure -> build from source.
30-
Map resolveArtifacts(String packageName, String newDotRootDir, boolean isHybrid) {
30+
Map resolveArtifacts(String newDotRootDir, boolean isHybrid) {
3131
def cmd = [
3232
"bun", "${newDotRootDir}/scripts/artifacts-utils/resolve-artifacts.ts",
33-
"--platform=android", "--package=${packageName}", "--hybrid=${isHybrid}", "--new-dot-root=${newDotRootDir}"
33+
"--platform=android", "--hybrid=${isHybrid}", "--new-dot-root=${newDotRootDir}"
3434
]
3535
try {
3636
def result = runCommand(cmd, 120, new File(newDotRootDir))

scripts/artifacts-utils/android/PatchedArtifactsSettings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ settings.extensions.configure(PatchedArtifactsConfig) { config ->
2525
config.packageName = getProperty('patchedArtifacts.packageName')
2626

2727
def isHybrid = config.packageName == 'react-hybrid'
28-
def resolution = ExpensiUtils.resolveArtifacts(config.packageName, getNewDotRootDir().toString(), isHybrid)
28+
def resolution = ExpensiUtils.resolveArtifacts(getNewDotRootDir().toString(), isHybrid)
2929
config.version = resolution.version
3030
config.buildFromSource = resolution.buildFromSource
3131

scripts/artifacts-utils/ios/patched_ios_artifacts.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,11 @@ def self.log(message, level = :info)
2929

3030
def self.setup
3131
is_hybrid = ENV['IS_HYBRID_APP'] == 'true'
32-
package_name = is_hybrid ? 'react-hybrid' : 'react-standalone'
3332

3433
# Manual escape hatch: force a full from-source build (e.g. to unblock a prebuild issue).
3534
build_from_source = ENV['BUILD_RN_FROM_SOURCE'] == '1'
3635
# The escape hatch short-circuits before anything touches the network: no resolver, no prefetch.
37-
resolution = build_from_source ? {'buildFromSource' => true, 'version' => nil} : prefetch(resolve(package_name, is_hybrid))
36+
resolution = build_from_source ? {'buildFromSource' => true, 'version' => nil} : prefetch(resolve(is_hybrid))
3837

3938
# A single decision drives both prebuilt flags, so we never land in a mixed
4039
# prebuilt-deps / source-core state (which desyncs the CocoaPods sandbox).
@@ -181,10 +180,10 @@ def self.download_and_verify(url, destination, github_token)
181180
destination
182181
end
183182

184-
def self.resolve(package_name, is_hybrid)
183+
def self.resolve(is_hybrid)
185184
cmd = [
186185
'bun', File.join(NEW_DOT_ROOT, 'scripts/artifacts-utils/resolve-artifacts.ts'),
187-
'--platform=ios', "--package=#{package_name}", "--hybrid=#{is_hybrid}", "--new-dot-root=#{NEW_DOT_ROOT}"
186+
'--platform=ios', "--hybrid=#{is_hybrid}", "--new-dot-root=#{NEW_DOT_ROOT}"
188187
]
189188
# stdout is pure JSON; the resolver logs to stderr.
190189
output = IO.popen(cmd, chdir: NEW_DOT_ROOT, &:read)

scripts/artifacts-utils/resolve-artifacts.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,24 @@ import resolveArtifacts from './lib/artifactsResolver';
77
*
88
* Usage:
99
* bun scripts/artifacts-utils/resolve-artifacts.ts \
10-
* --platform=ios --package=react-hybrid --hybrid=true --new-dot-root=.
10+
* --platform=ios --hybrid=true --new-dot-root=.
1111
*
1212
* Prints the result as JSON to stdout (logs go to stderr) and always exits 0.
1313
*/
1414
const args = parseCommandLineArguments();
1515
const platform = args.platform;
16-
const packageName = args.package ?? '';
16+
const isHybrid = args.hybrid === 'true';
17+
// The only two package names that exist; every caller's package and hybrid-ness always move together, so
18+
// deriving it here instead of taking it as a flag keeps that pairing from being restated at each call site.
19+
const packageName = isHybrid ? 'react-hybrid' : 'react-standalone';
1720

1821
if (platform !== 'ios' && platform !== 'android') {
1922
process.stderr.write(`[PatchedArtifacts] Invalid or missing --platform "${platform ?? ''}" (expected "ios" or "android"); building from source.\n`);
2023
process.stdout.write(JSON.stringify({buildFromSource: true, version: null, packageName, artifactId: ''}));
2124
process.exit(0);
2225
}
2326

24-
const options = {packageName, newDotRoot: args['new-dot-root'] ?? '.', isHybrid: args.hybrid === 'true'};
27+
const options = {packageName, newDotRoot: args['new-dot-root'] ?? '.', isHybrid};
2528
const resolution = platform === 'ios' ? resolveArtifacts({...options, platform: 'ios'}) : resolveArtifacts({...options, platform: 'android'});
2629

2730
resolution

0 commit comments

Comments
 (0)