From 0f7ba79166b96141104eb98edfddea4172f69da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Fri, 25 Jul 2025 05:47:35 -0700 Subject: [PATCH] Avoid creating too many unnecessary build directories for Fantom bundles (#52788) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/52788 Changelog: [internal] Minor change to just create a single output directory for generated JS code in Fantom per Jest run. Reviewed By: lenaic Differential Revision: D78808564 fbshipit-source-id: 70e1a60dfcdcc3fc6ee5f08ced1e9c8f8cab2782 --- .../runner/global-setup/globalSetup.js | 2 ++ private/react-native-fantom/runner/runner.js | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/private/react-native-fantom/runner/global-setup/globalSetup.js b/private/react-native-fantom/runner/global-setup/globalSetup.js index be1c78b2318..bd6b84bacc4 100644 --- a/private/react-native-fantom/runner/global-setup/globalSetup.js +++ b/private/react-native-fantom/runner/global-setup/globalSetup.js @@ -15,6 +15,8 @@ export default async function globalSetup( globalConfig: {...}, projectConfig: {...}, ): Promise { + process.env.__FANTOM_RUN_ID__ ??= `run-${Date.now()}`; + validateEnvironmentVariables(); if (!isOSS) { diff --git a/private/react-native-fantom/runner/runner.js b/private/react-native-fantom/runner/runner.js index ec1f7a46da4..453beb28202 100644 --- a/private/react-native-fantom/runner/runner.js +++ b/private/react-native-fantom/runner/runner.js @@ -51,11 +51,17 @@ import nullthrows from 'nullthrows'; import path from 'path'; import readline from 'readline'; +const fantomRunID = process.env.__FANTOM_RUN_ID__; +if (fantomRunID == null) { + throw new Error( + 'Expected Fantom run ID to be set by global setup, but it was not (process.env.__FANTOM_RUN_ID__ is null)', + ); +} + const BUILD_OUTPUT_ROOT = path.resolve(__dirname, '..', 'build', 'js'); -fs.mkdirSync(BUILD_OUTPUT_ROOT, {recursive: true}); -const BUILD_OUTPUT_PATH = fs.mkdtempSync( - path.join(BUILD_OUTPUT_ROOT, `run-${Date.now()}-`), -); +const BUILD_OUTPUT_PATH = path.join(BUILD_OUTPUT_ROOT, fantomRunID); + +fs.mkdirSync(BUILD_OUTPUT_PATH, {recursive: true}); function buildError( failureDetail: FailureDetail,