Skip to content

Commit

Permalink
enable old arch tests for RN 0.71 and 0.72
Browse files Browse the repository at this point in the history
  • Loading branch information
yousif-bugsnag committed Jul 31, 2023
1 parent aa0198c commit 6dbc94d
Show file tree
Hide file tree
Showing 124 changed files with 265 additions and 10 deletions.
88 changes: 86 additions & 2 deletions .buildkite/react-native-android-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,28 +85,60 @@ steps:
artifact_paths:
- build/rn0.69.apk

- label: ":android: Build RN 0.71 (Old Arch) apk"
key: "rn-0-71-old-arch-apk"
depends_on:
- "android-builder-image"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.71"
RN_NEW_ARCH: "false"
ARTEFACT_NAME: "rn0.71-old-arch"
plugins:
- docker-compose#v4.12.0:
run: react-native-android-builder
artifact_paths:
- build/rn0.71-old-arch.apk

- label: ":android: Build RN 0.71 (New Arch) apk"
key: "rn-0-71-new-arch-apk"
depends_on:
- "android-builder-image"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.71-new-arch"
REACT_NATIVE_VERSION: "rn0.71"
RN_NEW_ARCH: "true"
ARTEFACT_NAME: "rn0.71-new-arch"
plugins:
- docker-compose#v4.12.0:
run: react-native-android-builder
artifact_paths:
- build/rn0.71-new-arch.apk

- label: ":android: Build RN 0.72 (Old Arch) apk"
key: "rn-0-72-old-arch-apk"
depends_on:
- "android-builder-image"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.72"
RN_NEW_ARCH: "false"
ARTEFACT_NAME: "rn0.72-old-arch"
plugins:
- docker-compose#v4.12.0:
run: react-native-android-builder
artifact_paths:
- build/rn0.72-old-arch.apk

- label: ":android: Build RN 0.72 (New Arch) apk"
key: "rn-0-72-new-arch-apk"
depends_on:
- "android-builder-image"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.72-new-arch"
REACT_NATIVE_VERSION: "rn0.72"
RN_NEW_ARCH: "true"
ARTEFACT_NAME: "rn0.72-new-arch"
plugins:
- docker-compose#v4.12.0:
run: react-native-android-builder
Expand Down Expand Up @@ -302,6 +334,32 @@ steps:
concurrency_group: 'bitbar-app'
concurrency_method: eager

- label: ":android: RN 0.71 (Old Arch) Android 12 end-to-end tests"
depends_on: "rn-0-71-old-arch-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/rn0.71-old-arch.apk"
upload: ./test/react-native/maze_output/**/*
docker-compose#v4.7.0:
pull: react-native-maze-runner
run: react-native-maze-runner
service-ports: true
command:
- --app=build/rn0.71-old-arch.apk
- --farm=bb
- --device=ANDROID_12
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 25
concurrency_group: "bitbar-app"
concurrency_method: eager

- label: ":android: RN 0.71 (New Arch) Android 12 end-to-end tests"
depends_on: "rn-0-71-new-arch-apk"
timeout_in_minutes: 60
Expand All @@ -328,6 +386,32 @@ steps:
concurrency_group: "bitbar-app"
concurrency_method: eager

- label: ":android: RN 0.72 (Old Arch) Android 12 end-to-end tests"
depends_on: "rn-0-72-old-arch-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/rn0.72-old-arch.apk"
upload: ./test/react-native/maze_output/**/*
docker-compose#v4.7.0:
pull: react-native-maze-runner
run: react-native-maze-runner
service-ports: true
command:
- --app=build/rn0.72-old-arch.apk
- --farm=bb
- --device=ANDROID_12
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 25
concurrency_group: "bitbar-app"
concurrency_method: eager

- label: ":android: RN 0.72 (New Arch) Android 12 end-to-end tests"
depends_on: "rn-0-72-new-arch-apk"
timeout_in_minutes: 60
Expand Down
94 changes: 88 additions & 6 deletions .buildkite/react-native-ios-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,30 +71,62 @@ steps:
commands:
- npm run test:build-react-native-ios

- label: ":ios: Build RN 0.71 (Old Arch) ipa"
key: "rn-0-71-old-arch-ipa"
timeout_in_minutes: 60
agents:
queue: "opensource-arm-mac-cocoa-12"
env:
REACT_NATIVE_VERSION: "rn0.71"
LANG: "en_US.UTF-8"
DEVELOPER_DIR: "/Applications/Xcode14.app"
RCT_NEW_ARCH_ENABLED: "0"
ARTEFACT_NAME: "rn0.71-old-arch"
artifact_paths: build/rn0.71-old-arch.ipa
commands:
- npm run test:build-react-native-ios

- label: ":ios: Build RN 0.71 (New Arch) ipa"
key: "rn-0-71-ipa"
key: "rn-0-71-new-arch-ipa"
timeout_in_minutes: 60
agents:
queue: "opensource-arm-mac-cocoa-12"
env:
REACT_NATIVE_VERSION: "rn0.71-new-arch"
REACT_NATIVE_VERSION: "rn0.71"
LANG: "en_US.UTF-8"
DEVELOPER_DIR: "/Applications/Xcode14.app"
RCT_NEW_ARCH_ENABLED: "1"
ARTEFACT_NAME: "rn0.71-new-arch"
artifact_paths: build/rn0.71-new-arch.ipa
commands:
- npm run test:build-react-native-ios

- label: ":ios: Build RN 0.72 (Old Arch) ipa"
key: "rn-0-72-old-arch-ipa"
timeout_in_minutes: 60
agents:
queue: "opensource-arm-mac-cocoa-12"
env:
REACT_NATIVE_VERSION: "rn0.72"
LANG: "en_US.UTF-8"
DEVELOPER_DIR: "/Applications/Xcode14.app"
RCT_NEW_ARCH_ENABLED: "0"
ARTEFACT_NAME: "rn0.72-old-arch"
artifact_paths: build/rn0.72-old-arch.ipa
commands:
- npm run test:build-react-native-ios

- label: ":ios: Build RN 0.72 (New Arch) ipa"
key: "rn-0-72-ipa"
key: "rn-0-72-new-arch-ipa"
timeout_in_minutes: 60
agents:
queue: "opensource-arm-mac-cocoa-12"
env:
REACT_NATIVE_VERSION: "rn0.72-new-arch"
REACT_NATIVE_VERSION: "rn0.72"
LANG: "en_US.UTF-8"
DEVELOPER_DIR: "/Applications/Xcode14.app"
RCT_NEW_ARCH_ENABLED: "1"
ARTEFACT_NAME: "rn0.72-new-arch"
artifact_paths: build/rn0.72-new-arch.ipa
commands:
- npm run test:build-react-native-ios
Expand Down Expand Up @@ -291,8 +323,33 @@ steps:
concurrency_group: "browserstack-app"
concurrency_method: eager

- label: ":ios: RN 0.71 (Old Arch) iOS 14 end-to-end tests"
depends_on: "rn-0-71-old-arch-ipa"
timeout_in_minutes: 60
plugins:
artifacts#v1.5.0:
download: "build/rn0.71-old-arch.ipa"
upload: ./test/react-native/maze_output/**/*
docker-compose#v4.12.0:
pull: react-native-maze-runner
run: react-native-maze-runner
use-aliases: true
command:
- --app=build/rn0.71-old-arch.ipa
- --farm=bs
- --device=IOS_14
- --a11y-locator
- --appium-version=1.18.0
- --fail-fast
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 5
concurrency_group: "browserstack-app"
concurrency_method: eager

- label: ":ios: RN 0.71 (New Arch) iOS 14 end-to-end tests"
depends_on: "rn-0-71-ipa"
depends_on: "rn-0-71-new-arch-ipa"
timeout_in_minutes: 60
plugins:
artifacts#v1.5.0:
Expand All @@ -316,8 +373,33 @@ steps:
concurrency_group: "browserstack-app"
concurrency_method: eager

- label: ":ios: RN 0.72 (Old Arch) iOS 14 end-to-end tests"
depends_on: "rn-0-72-old-arch-ipa"
timeout_in_minutes: 60
plugins:
artifacts#v1.5.0:
download: "build/rn0.72-old-arch.ipa"
upload: ./test/react-native/maze_output/**/*
docker-compose#v4.12.0:
pull: react-native-maze-runner
run: react-native-maze-runner
use-aliases: true
command:
- --app=build/rn0.72-old-arch.ipa
- --farm=bs
- --device=IOS_14
- --a11y-locator
- --appium-version=1.18.0
- --fail-fast
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 5
concurrency_group: "browserstack-app"
concurrency_method: eager

- label: ":ios: RN 0.72 (New Arch) iOS 14 end-to-end tests"
depends_on: "rn-0-72-ipa"
depends_on: "rn-0-72-new-arch-ipa"
timeout_in_minutes: 60
plugins:
artifacts#v1.5.0:
Expand Down
3 changes: 2 additions & 1 deletion scripts/react-native-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ module.exports = {
// Native layer
common.changeDir('android')

if (process.env.RN_NEW_ARCH) {
if (process.env.RN_NEW_ARCH === 'true') {
common.run('cp newarch.gradle.properties gradle.properties')
common.run('./gradlew generateCodegenArtifactsFromSchema assembleRelease', true)
} else {
common.run('./gradlew assembleRelease', true)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0

# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64

# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=false

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=true
newArchEnabled=false

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0

# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64

# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=true

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true

0 comments on commit 6dbc94d

Please sign in to comment.