Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move react-native-navigation tests to dynamic fixture setup #2202

Merged
merged 5 commits into from
Sep 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 75 additions & 46 deletions .buildkite/full/react-native-android-pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,45 +145,55 @@ steps:
- "0.72"
- "0.73"

- label: ":android: Build react-navigation 0.69 apk"
key: "react-navigation-0-69-apk"
depends_on:
- "android-builder-image-java-11-node-16"
timeout_in_minutes: 60
- label: ':android: Build react-native-navigation {{matrix}} test fixture APK (Old Arch)'
key: "build-react-native-navigation-android-fixture-old-arch"
timeout_in_minutes: 30
agents:
queue: macos-14
env:
REACT_NATIVE_VERSION: "rn0.69"
JS_SOURCE_DIR: "react_navigation_js"
ARTEFACT_NAME: "r_navigation_0.69"
plugins:
- docker-compose#v4.12.0:
pull: react-native-android-builder-java-11-node-16
run: react-native-android-builder-java-11-node-16
JAVA_VERSION: "17"
NODE_VERSION: "18"
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "0"
BUILD_ANDROID: "true"
REACT_NATIVE_NAVIGATION: "true"
artifact_paths:
- build/r_navigation_0.69.apk
- "test/react-native/features/fixtures/generated/react-native-navigation/old-arch/**/reactnative.apk"
commands:
- "bundle install"
- "node scripts/generate-react-native-fixture.js"
matrix:
- "0.71"
- "0.72"
retry:
automatic:
- exit_status: "*"
limit: 1

- label: ":android: Build react-native-navigation 0.66 apk"
key: "react-native-navigation-0-66-apk"
depends_on:
- "android-builder-image-java-11-node-16"
timeout_in_minutes: 60
- label: ':android: Build react-native-navigation {{matrix}} test fixture APK (New Arch)'
key: "build-react-native-navigation-android-fixture-new-arch"
timeout_in_minutes: 30
agents:
queue: macos-14
env:
REACT_NATIVE_VERSION: "rn0.66"
JS_SOURCE_DIR: "react_native_navigation_js"
ARTEFACT_NAME: "r_native_navigation_0.66"
plugins:
- docker-compose#v4.12.0:
pull: react-native-android-builder-java-11-node-16
run: react-native-android-builder-java-11-node-16
JAVA_VERSION: "17"
NODE_VERSION: "18"
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "1"
BUILD_ANDROID: "true"
REACT_NATIVE_NAVIGATION: "true"
artifact_paths:
- build/r_native_navigation_0.66.apk
- "test/react-native/features/fixtures/generated/react-native-navigation/new-arch/**/reactnative.apk"
commands:
- "bundle install"
- "node scripts/generate-react-native-fixture.js"
retry:
automatic:
- exit_status: "*"
limit: 1
matrix:
- "0.71"
- "0.72"

#
# End-to-end tests
Expand Down Expand Up @@ -337,6 +347,9 @@ steps:
- "0.72"
- "0.73"

# current latest version (v7.40.1) of react-native-navigation's autolinking tool doesn't support RN 0.73+,
# causing a build failure - see https://github.com/wix/react-native-navigation/issues/7821
# TODO: Investigate and try to re-enable when we add tests for more recent React Native versions
- label: ":bitbar: :android: RN {{matrix}} Android 12 (New Arch) end-to-end tests"
depends_on: "build-react-native-android-fixture-new-arch-full"
timeout_in_minutes: 60
Expand Down Expand Up @@ -371,56 +384,72 @@ steps:
- "0.72"
- "0.73"

- label: ":bitbar: :android: react-navigation 0.69 Android end-to-end tests"
depends_on: "react-navigation-0-69-apk"
- label: ":bitbar: :android: react-native-navigation {{matrix}} Android 12 (Old Arch) end-to-end tests"
depends_on: "build-react-native-navigation-android-fixture-old-arch"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/r_navigation_0.69.apk"
download: "test/react-native/features/fixtures/generated/react-native-navigation/old-arch/{{matrix}}/reactnative.apk"
upload: ./test/react-native/maze_output/**/*
docker-compose#v4.7.0:
docker-compose#v4.12.0:
pull: react-native-maze-runner
run: react-native-maze-runner
service-ports: true
command:
- --app=build/r_navigation_0.69.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --app=/app/features/fixtures/generated/react-native-navigation/old-arch/{{matrix}}/reactnative.apk
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --device=ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
- features/navigation.feature
- features/react-native-navigation.feature
retry:
manual:
permit_on_passed: true
env:
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "0"
REACT_NATIVE_NAVIGATION: "true"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_group: "bitbar"
concurrency_method: eager
matrix:
- "0.71"
- "0.72"

- label: ":bitbar: :android: react-native-navigation 0.66 Android end-to-end tests"
depends_on: "react-native-navigation-0-66-apk"
- label: ":bitbar: :android: react-native-navigation {{matrix}} Android 12 (New Arch) end-to-end tests"
depends_on: "build-react-native-navigation-android-fixture-new-arch"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/r_native_navigation_0.66.apk"
download: "test/react-native/features/fixtures/generated/react-native-navigation/new-arch/{{matrix}}/reactnative.apk"
upload: ./test/react-native/maze_output/**/*
docker-compose#v4.7.0:
docker-compose#v4.12.0:
pull: react-native-maze-runner
run: react-native-maze-runner
service-ports: true
command:
- --app=build/r_native_navigation_0.66.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --app=/app/features/fixtures/generated/react-native-navigation/new-arch/{{matrix}}/reactnative.apk
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --device=ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
- features/navigation.feature
- features/react-native-navigation.feature
retry:
manual:
permit_on_passed: true
env:
RCT_NEW_ARCH_ENABLED: "1"
RN_VERSION: "{{matrix}}"
REACT_NATIVE_NAVIGATION: "true"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_group: "bitbar"
concurrency_method: eager
matrix:
- "0.71"
- "0.72"
167 changes: 103 additions & 64 deletions .buildkite/full/react-native-ios-pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,45 +124,57 @@ steps:
- exit_status: "*"
limit: 1

- label: ":ios: Build react-navigation 0.69 ipa"
key: "react-navigation-0-69-ipa"
timeout_in_minutes: 60
- label: ':mac: Build react-native-navigation {{matrix}} test fixture ipa (Old Arch)'
key: "build-react-native-navigation-ios-fixture-old-arch"
timeout_in_minutes: 30
agents:
queue: "macos-12-arm"
queue: "macos-14"
env:
REACT_NATIVE_VERSION: rn0.69
JS_SOURCE_DIR: "react_navigation_js"
ARTEFACT_NAME: "r_navigation_0.69"
LANG: "en_US.UTF-8"
DEVELOPER_DIR: "/Applications/Xcode14.app"
artifact_paths: build/r_navigation_0.69.ipa
NODE_VERSION: "18"
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "0"
BUILD_IOS: "true"
XCODE_VERSION: "15.3.0"
REACT_NATIVE_NAVIGATION: "true"
artifact_paths:
- "test/react-native/features/fixtures/generated/react-native-navigation/old-arch/**/output/reactnative.ipa"
commands:
- npm run test:build-react-native-ios
- "bundle install"
- "node scripts/generate-react-native-fixture.js"
matrix:
- "0.71"
- "0.72"
retry:
automatic:
- exit_status: "*"
limit: 1

# See: PLAT-5173
- label: ":ios: Build react-native-navigation 0.66 ipa"
skip: "See PLAT-5173"
key: "react-native-navigation-0-66-ipa"
timeout_in_minutes: 60
agents:
queue: "macos-12-arm"
env:
REACT_NATIVE_VERSION: rn0.66
JS_SOURCE_DIR: "react_native_navigation_js"
ARTEFACT_NAME: "r_native_navigation_0.66"
LANG: "en_US.UTF-8"
DEVELOPER_DIR: "/Applications/Xcode14.app"
artifact_paths: build/r_native_navigation_0.66.ipa
commands:
- npm run test:build-react-native-ios
retry:
automatic:
- exit_status: "*"
limit: 1
# Skipped due to build failures with react-native-navigation when new arch is enabled
# TODO: Investigate and try to re-enable when we add tests for more recent React Native versions
# - label: ':mac: Build react-native-navigation {{matrix}} test fixture ipa (New Arch)'
# key: "build-react-native-navigation-ios-fixture-new-arch"
# timeout_in_minutes: 30
# agents:
# queue: "macos-14"
# env:
# NODE_VERSION: "18"
# RN_VERSION: "{{matrix}}"
# RCT_NEW_ARCH_ENABLED: "1"
# BUILD_IOS: "true"
# XCODE_VERSION: "15.3.0"
# REACT_NATIVE_NAVIGATION: "true"
# artifact_paths:
# - "test/react-native/features/fixtures/generated/react-native-navigation/new-arch/**/output/reactnative.ipa"
# commands:
# - "bundle install"
# - "node scripts/generate-react-native-fixture.js"
# matrix:
# - "0.71"
# - "0.72"
# retry:
# automatic:
# - exit_status: "*"
# limit: 1

#
# End-to-end tests
Expand Down Expand Up @@ -340,48 +352,75 @@ steps:
- "0.72"
- "0.73"

- label: ":browserstack: :ios: react-navigation 0.69 iOS 16 end-to-end tests"
depends_on: "react-navigation-0-69-ipa"
# current latest version (v7.40.1) of react-native-navigation's autolinking tool doesn't currently support RN 0.73+,
# causing a build failure - see https://github.com/wix/react-native-navigation/issues/7821
# TODO: Investigate and try to re-enable when we add tests for more recent React Native versions
- label: ":bitbar: :mac: react-native-navigation {{matrix}} iOS 16 (Old Arch) end-to-end tests"
depends_on: "build-react-native-navigation-ios-fixture-old-arch"
timeout_in_minutes: 60
plugins:
artifacts#v1.5.0:
download: "build/r_navigation_0.69.ipa"
artifacts#v1.9.0:
download: "test/react-native/features/fixtures/generated/react-native-navigation/old-arch/{{matrix}}/output/reactnative.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
service-ports: true
command:
- --app=build/r_navigation_0.69.ipa
- --farm=bs
- --app=/app/features/fixtures/generated/react-native-navigation/old-arch/{{matrix}}/output/reactnative.ipa
- --farm=bb
- --device=IOS_16
- --a11y-locator
- --fail-fast
- features/navigation.feature
concurrency: 5
concurrency_group: "browserstack-app"
- --no-tunnel
- --aws-public-ip
- features/react-native-navigation.feature
retry:
manual:
permit_on_passed: true
env:
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "0"
REACT_NATIVE_NAVIGATION: "true"
concurrency: 25
concurrency_group: "bitbar"
concurrency_method: eager
matrix:
- "0.71"
- "0.72"

# See: PLAT-5173
- label: ":browserstack: :ios: react-native-navigation 0.66 iOS 16 end-to-end tests"
skip: "See PLAT-5173"
depends_on: "react-native-navigation-0-66-ipa"
timeout_in_minutes: 60
plugins:
artifacts#v1.5.0:
download: "build/r_native_navigation_0.66.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/r_native_navigation_0.66.ipa
- --farm=bs
- --device=IOS_16
- --a11y-locator
- --fail-fast
- features/navigation.feature
concurrency: 5
concurrency_group: "browserstack-app"
concurrency_method: eager
# Skipped due to build failures with react-native-navigation when new arch is enabled
# TODO: Investigate and try to re-enable when we add tests for more recent React Native versions
Comment on lines +392 to +393
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prefer raising a ticket and adding skip: "See PLAT-1234" than commenting out

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed this with @tomlongridge and we decided not to raise a ticket for this because it's not something we can fix on our side - instead we'll re-assess when we come to add the next RN version to the test matrix.

# - label: ":bitbar: :mac: react-native-navigation {{matrix}} iOS 16 (New Arch) end-to-end tests"
# depends_on: "build-react-native-navigation-ios-fixture-new-arch"
# timeout_in_minutes: 60
# plugins:
# artifacts#v1.9.0:
# download: "test/react-native/features/fixtures/generated/react-native-navigation/new-arch/{{matrix}}/output/reactnative.ipa"
# upload: ./test/react-native/maze_output/**/*
# docker-compose#v4.12.0:
# pull: react-native-maze-runner
# run: react-native-maze-runner
# service-ports: true
# command:
# - --app=/app/features/fixtures/generated/react-native-navigation/new-arch/{{matrix}}/output/reactnative.ipa
# - --farm=bb
# - --device=IOS_16
# - --a11y-locator
# - --fail-fast
# - --no-tunnel
# - --aws-public-ip
# - features/react-native-navigation.feature
# env:
# RCT_NEW_ARCH_ENABLED: "1"
# RN_VERSION: "{{matrix}}"
# REACT_NATIVE_NAVIGATION: "true"
# retry:
# manual:
# permit_on_passed: true
# concurrency: 25
# concurrency_group: "bitbar"
# concurrency_method: eager
# matrix:
# - "0.71"
# - "0.72"
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ services:
BITBAR_ACCESS_KEY:
HERMES:
RN_VERSION:
REACT_NATIVE_NAVIGATION:
ports:
- "9000-9499:9339"
networks:
Expand Down
Loading
Loading