From ce56824c2ef314519ba697b9eca8c1839f9f744e Mon Sep 17 00:00:00 2001 From: lafay <2021211506@stu.hit.edu.cn> Date: Mon, 15 Jun 2026 23:51:20 +0800 Subject: [PATCH] refactor(ci): simplify CMake job limit plugin by removing app/build.gradle patching --- plugins/withCmakeJobLimit.js | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/plugins/withCmakeJobLimit.js b/plugins/withCmakeJobLimit.js index 28f0131..3267367 100644 --- a/plugins/withCmakeJobLimit.js +++ b/plugins/withCmakeJobLimit.js @@ -6,17 +6,15 @@ const MAX_JOBS = '8'; // React Native's hermes-engine build hardcodes // Runtime.getRuntime().availableProcessors() -// for cmake --build -j, ignoring all env vars. +// for `cmake --build -j`, ignoring the CMAKE_BUILD_PARALLEL_LEVEL env var. // On high-core CI runners this exhausts memory. -// This plugin patches hermes-engine/build.gradle.kts -// during prebuild to cap parallel jobs. +// This plugin caps it during prebuild. const withCmakeJobLimit = (config) => withDangerousMod(config, [ 'android', async (config) => { const root = config.modRequest.projectRoot; - // 1. Patch hermes-engine: availableProcessors() -> "8" const hermesPath = path.join( root, 'node_modules', @@ -32,25 +30,7 @@ const withCmakeJobLimit = (config) => `"${MAX_JOBS}"`, ); fs.writeFileSync(hermesPath, content); - } - - // 2. Patch app/build.gradle: add cmake -j argument to externalNativeBuild - const appGradlePath = path.join( - config.modRequest.platformProjectRoot, - 'app', - 'build.gradle', - ); - if (fs.existsSync(appGradlePath)) { - let content = fs.readFileSync(appGradlePath, 'utf-8'); - // Insert externalNativeBuild cmake arguments block inside the android { } block - // We add it right after "ndkVersion rootProject.ext.ndkVersion" - if (!content.includes('CMAKE_BUILD_PARALLEL_LEVEL')) { - content = content.replace( - /(\s*ndkVersion rootProject\.ext\.ndkVersion)/, - `$1\n externalNativeBuild {\n cmake {\n arguments "-j${MAX_JOBS}"\n }\n }`, - ); - } - fs.writeFileSync(appGradlePath, content); + console.log(`[withCmakeJobLimit] capped hermes-engine jobs to ${MAX_JOBS}`); } return config;