Skip to content

Commit f40fea3

Browse files
committed
check env var on Android
1 parent 4d1499e commit f40fea3

2 files changed

Lines changed: 35 additions & 1 deletion

File tree

packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/DependencyUtils.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository
2929

3030
internal object DependencyUtils {
3131
private const val REACT_NATIVE_MAVEN_CACHE_URL = "https://repo.reactnative.dev/maven2"
32+
private const val REACT_NATIVE_MAVEN_CACHE_ENABLED_ENV =
33+
"RCT_REACT_NATIVE_MAVEN_CACHE_ENABLED"
3234

3335
internal data class Coordinates(
3436
val versionString: String,
@@ -284,10 +286,14 @@ internal object DependencyUtils {
284286
else -> INCLUDE_JITPACK_REPOSITORY_DEFAULT
285287
}
286288

287-
internal fun Project.isReactNativeMavenCacheEnabled(): Boolean =
289+
internal fun Project.isReactNativeMavenCacheEnabled(
290+
environmentValue: String? = System.getenv(REACT_NATIVE_MAVEN_CACHE_ENABLED_ENV)
291+
): Boolean =
288292
when {
289293
hasProperty(INTERNAL_REACT_NATIVE_MAVEN_CACHE_ENABLED) ->
290294
property(INTERNAL_REACT_NATIVE_MAVEN_CACHE_ENABLED).toString().toBoolean()
295+
!environmentValue.isNullOrEmpty() ->
296+
!environmentValue.equals("false", ignoreCase = true) && environmentValue != "0"
291297
else -> false
292298
}
293299

packages/gradle-plugin/react-native-gradle-plugin/src/test/kotlin/com/facebook/react/utils/DependencyUtilsTest.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.facebook.react.utils.DependencyUtils.configureDependencies
1212
import com.facebook.react.utils.DependencyUtils.configureRepositories
1313
import com.facebook.react.utils.DependencyUtils.exclusiveEnterpriseRepository
1414
import com.facebook.react.utils.DependencyUtils.getDependencySubstitutions
15+
import com.facebook.react.utils.DependencyUtils.isReactNativeMavenCacheEnabled
1516
import com.facebook.react.utils.DependencyUtils.isNightly
1617
import com.facebook.react.utils.DependencyUtils.mavenRepoFromURI
1718
import com.facebook.react.utils.DependencyUtils.mavenRepoFromUrl
@@ -305,6 +306,33 @@ class DependencyUtilsTest {
305306
.isNull()
306307
}
307308

309+
@Test
310+
fun isReactNativeMavenCacheEnabled_withEnvironmentVariableEnabled_returnsTrue() {
311+
val project = createProject()
312+
313+
assertThat(project.isReactNativeMavenCacheEnabled("true")).isTrue()
314+
assertThat(project.isReactNativeMavenCacheEnabled("1")).isTrue()
315+
}
316+
317+
@Test
318+
fun isReactNativeMavenCacheEnabled_withEnvironmentVariableDisabled_returnsFalse() {
319+
val project = createProject()
320+
321+
assertThat(project.isReactNativeMavenCacheEnabled(null)).isFalse()
322+
assertThat(project.isReactNativeMavenCacheEnabled("")).isFalse()
323+
assertThat(project.isReactNativeMavenCacheEnabled("false")).isFalse()
324+
assertThat(project.isReactNativeMavenCacheEnabled("FALSE")).isFalse()
325+
assertThat(project.isReactNativeMavenCacheEnabled("0")).isFalse()
326+
}
327+
328+
@Test
329+
fun isReactNativeMavenCacheEnabled_withProjectProperty_ignoresEnvironmentVariable() {
330+
val project = createProject()
331+
project.extensions.extraProperties.set("react.internal.reactNativeMavenCacheEnabled", "false")
332+
333+
assertThat(project.isReactNativeMavenCacheEnabled("true")).isFalse()
334+
}
335+
308336
@Test
309337
fun configureRepositories_snapshotRepoHasHigherPriorityThanMavenCentral() {
310338
val repositoryURI = URI.create("https://central.sonatype.com/repository/maven-snapshots/")

0 commit comments

Comments
 (0)