33 Updates package.json React Native and React versions based on REACT_NATIVE_VERSION env var.
44 - Fetches the React peer dependency from the npm registry for the specified RN version
55 - Updates package.json dependencies/devDependencies accordingly
6+ - Updates Gradle wrapper version based on RN version
67*/
78
89const fs = require ( 'fs/promises' ) ;
910const path = require ( 'path' ) ;
1011
12+ const GRADLE_WRAPPER_PATH = path . join (
13+ process . cwd ( ) ,
14+ 'playground' ,
15+ 'android' ,
16+ 'gradle' ,
17+ 'wrapper' ,
18+ 'gradle-wrapper.properties'
19+ ) ;
20+
1121/**
1222 * Fetch and compute the versions we need in order to update package.json files.
1323 * Returns an object with:
@@ -86,6 +96,31 @@ function logChanges(packageJsonPath, versions) {
8696 }
8797}
8898
99+ /**
100+ * Determine the Gradle version based on RN minor version.
101+ * RN < 0.82: Gradle 8.14.1
102+ * RN >= 0.82: Gradle 9.0.0
103+ */
104+ function getGradleVersion ( rnMinor ) {
105+ return rnMinor < 82 ? '8.14.1' : '9.0.0' ;
106+ }
107+
108+ /**
109+ * Update gradle-wrapper.properties with the appropriate Gradle version.
110+ */
111+ async function updateGradleWrapper ( rnMinor ) {
112+ const gradleVersion = getGradleVersion ( rnMinor ) ;
113+ const content = await fs . readFile ( GRADLE_WRAPPER_PATH , 'utf8' ) ;
114+
115+ const updatedContent = content . replace (
116+ / d i s t r i b u t i o n U r l = h t t p s \\ : \/ \/ s e r v i c e s \. g r a d l e \. o r g \/ d i s t r i b u t i o n s \/ g r a d l e - [ \d . ] + - b i n \. z i p / ,
117+ `distributionUrl=https\\://services.gradle.org/distributions/gradle-${ gradleVersion } -bin.zip`
118+ ) ;
119+
120+ await fs . writeFile ( GRADLE_WRAPPER_PATH , updatedContent , 'utf8' ) ;
121+ console . log ( `Updated Gradle version to ${ gradleVersion } ` ) ;
122+ }
123+
89124async function main ( ) {
90125 const rnVersion = process . env . REACT_NATIVE_VERSION ;
91126 if ( ! rnVersion ) {
@@ -105,6 +140,9 @@ async function main() {
105140 await updatePackageJsonAt ( packageJsonPath , versions ) ;
106141 logChanges ( packageJsonPath , versions ) ;
107142 }
143+
144+ // Update Gradle wrapper version
145+ await updateGradleWrapper ( versions . rnMinor ) ;
108146}
109147
110148main ( ) . catch ( ( err ) => {
0 commit comments