Skip to content

Commit

Permalink
ci(react-native): add react-native-navigation tests to full CI pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
yousif-bugsnag committed Sep 19, 2024
1 parent f383fd2 commit 05290a8
Show file tree
Hide file tree
Showing 4 changed files with 243 additions and 1 deletion.
120 changes: 120 additions & 0 deletions .buildkite/full/react-native-android-pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,56 @@ steps:
- exit_status: "*"
limit: 1

- 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:
JAVA_VERSION: "17"
NODE_VERSION: "18"
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "0"
BUILD_ANDROID: "true"
REACT_NATIVE_NAVIGATION: "true"
artifact_paths:
- "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 {{matrix}} test fixture APK (New Arch)'
key: "build-react-native-navigation-android-fixture-new-arch"
timeout_in_minutes: 30
agents:
queue: macos-14
env:
JAVA_VERSION: "17"
NODE_VERSION: "18"
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "1"
BUILD_ANDROID: "true"
REACT_NATIVE_NAVIGATION: "true"
artifact_paths:
- "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 @@ -424,3 +474,73 @@ steps:
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager

- 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: "test/react-native/features/fixtures/generated/react-native-navigation/old-arch/{{matrix}}/reactnative.apk"
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/old-arch/{{matrix}}/reactnative.apk
- --farm=bb
- --device=ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --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"

- 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: "test/react-native/features/fixtures/generated/react-native-navigation/new-arch/{{matrix}}/reactnative.apk"
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}}/reactnative.apk
- --farm=bb
- --device=ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
- 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_method: eager
matrix:
- "0.71"
- "0.72"
118 changes: 118 additions & 0 deletions .buildkite/full/react-native-ios-pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,56 @@ steps:
- exit_status: "*"
limit: 1

- 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-14"
env:
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:
- "bundle install"
- "node scripts/generate-react-native-fixture.js"
matrix:
- "0.71"
- "0.72"
retry:
automatic:
- exit_status: "*"
limit: 1

- 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 @@ -385,3 +435,71 @@ steps:
concurrency: 5
concurrency_group: "browserstack-app"
concurrency_method: eager

- 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.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
service-ports: true
command:
- --app=/app/features/fixtures/generated/react-native-navigation/old-arch/{{matrix}}/output/reactnative.ipa
- --farm=bb
- --device=IOS_16
- --a11y-locator
- --fail-fast
- --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"

- 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"
2 changes: 1 addition & 1 deletion test/react-native/features/react-native-navigation.feature
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@navigation @skip_new_arch
@navigation @react-native-navigation
Feature: Navigation plugin features

Scenario: Navigating screens causes breadcrumbs and context to be updated
Expand Down
4 changes: 4 additions & 0 deletions test/react-native/features/support/env.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
skip_this_scenario("Skipping scenario") if ENV['SKIP_NAVIGATION_SCENARIOS'].eql?('true')
end

Before('@react-native-navigation') do |scenario|
skip_this_scenario("Skipping scenario") unless ENV['REACT_NATIVE_NAVIGATION'].eql?('true')
end

# Require until PLAT-8236 is implemented
Before('@skip_hermes') do |_scenario|
skip_this_scenario("Skipping scenario") if ENV['HERMES'].eql?('true')
Expand Down

0 comments on commit 05290a8

Please sign in to comment.