.buildkite/full/react-native-android-pipeline.full.yml
steps:
- group: "React Native (Android) Tests"
steps:
#
# Android builder
#
- label: ":docker: Build RN Android Builder image (Java 11, Node 16)"
key: "android-builder-image-java-11-node-16"
timeout_in_minutes: 30
plugins:
- docker-compose#v4.12.0:
build: react-native-android-builder-java-11-node-16
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
cache-from: react-native-android-builder-java-11-node-16:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-${BRANCH_NAME}
- docker-compose#v4.12.0:
push: react-native-android-builder-java-11-node-16:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-${BRANCH_NAME}
retry:
automatic:
- exit_status: "*"
limit: 1
#
# Test fixtures
#
- label: ":android: Build RN 0.66 apk"
key: "rn-0-66-apk"
depends_on:
- "android-builder-image-java-11-node-16"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.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
artifact_paths:
- build/rn0.66.apk
retry:
automatic:
- exit_status: "*"
limit: 1
- label: ":android: Build RN 0.67 apk"
key: "rn-0-67-apk"
depends_on:
- "android-builder-image-java-11-node-16"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.67"
plugins:
- docker-compose#v4.12.0:
pull: react-native-android-builder-java-11-node-16
run: react-native-android-builder-java-11-node-16
artifact_paths:
- build/rn0.67.apk
retry:
automatic:
- exit_status: "*"
limit: 1
- label: ":android: Build RN 0.68 Hermes apk"
key: "rn-0-68-hermes-apk"
depends_on:
- "android-builder-image-java-11-node-16"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.68-hermes"
plugins:
- docker-compose#v4.12.0:
pull: react-native-android-builder-java-11-node-16
run: react-native-android-builder-java-11-node-16
artifact_paths:
- build/rn0.68-hermes.apk
retry:
automatic:
- exit_status: "*"
limit: 1
- label: ":android: Build RN 0.69 apk"
key: "rn-0-69-apk"
depends_on:
- "android-builder-image-java-11-node-16"
timeout_in_minutes: 60
env:
REACT_NATIVE_VERSION: "rn0.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
artifact_paths:
- build/rn0.69.apk
retry:
automatic:
- exit_status: "*"
limit: 1
- label: ':android: Build RN {{matrix}} test fixture APK (Old Arch)'
key: "build-react-native-android-fixture-old-arch-full"
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"
artifact_paths:
- "test/react-native/features/fixtures/generated/old-arch/**/reactnative.apk"
commands:
- "bundle install"
- "node scripts/generate-react-native-fixture.js"
matrix:
- "0.71"
- "0.72"
- "0.73"
retry:
automatic:
- exit_status: "*"
limit: 1
- label: ':android: Build RN {{matrix}} test fixture APK (New Arch)'
key: "build-react-native-android-fixture-new-arch-full"
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"
artifact_paths:
- "test/react-native/features/fixtures/generated/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"
- "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
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
artifact_paths:
- build/r_navigation_0.69.apk
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
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
artifact_paths:
- build/r_native_navigation_0.66.apk
retry:
automatic:
- exit_status: "*"
limit: 1
#
# End-to-end tests
#
- label: ":bitbar: :android: RN 0.66 Android end-to-end tests"
depends_on: "rn-0-66-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/rn0.66.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.66.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
env:
SKIP_NAVIGATION_SCENARIOS: "true"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
- label: ":bitbar: :android: RN 0.67 Android end-to-end tests"
depends_on: "rn-0-67-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/rn0.67.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.67.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
- label: ":bitbar: :android: RN 0.69 Android end-to-end tests"
depends_on: "rn-0-69-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/rn0.69.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.69.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
- label: ":bitbar: :android: RN 0.68 (Hermes) Android end-to-end tests"
depends_on: "rn-0-68-hermes-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/rn0.68-hermes.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.68-hermes.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
env:
SKIP_NAVIGATION_SCENARIOS: "true"
HERMES: "true"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
- label: ":bitbar: :android: RN {{matrix}} Android 12 (Old Arch) end-to-end tests"
depends_on: "build-react-native-android-fixture-old-arch-full"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "test/react-native/features/fixtures/generated/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/old-arch/{{matrix}}/reactnative.apk
- --farm=bb
- --device=ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
retry:
manual:
permit_on_passed: true
env:
SKIP_NAVIGATION_SCENARIOS: "true"
RN_VERSION: "{{matrix}}"
RCT_NEW_ARCH_ENABLED: "0"
concurrency: 25
concurrency_group: "bitbar"
concurrency_method: eager
matrix:
- "0.71"
- "0.72"
- "0.73"
- 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
plugins:
artifacts#v1.9.0:
download: "test/react-native/features/fixtures/generated/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/new-arch/{{matrix}}/reactnative.apk
- --farm=bb
- --device=ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
retry:
manual:
permit_on_passed: true
env:
SKIP_NAVIGATION_SCENARIOS: "true"
RCT_NEW_ARCH_ENABLED: "1"
RN_VERSION: "{{matrix}}"
concurrency: 25
concurrency_group: "bitbar"
concurrency_method: eager
matrix:
- "0.71"
- "0.72"
- "0.73"
- label: ":bitbar: :android: react-navigation 0.69 Android end-to-end tests"
depends_on: "react-navigation-0-69-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/r_navigation_0.69.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/r_navigation_0.69.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
- features/navigation.feature
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
- label: ":bitbar: :android: react-native-navigation 0.66 Android end-to-end tests"
depends_on: "react-native-navigation-0-66-apk"
timeout_in_minutes: 60
plugins:
artifacts#v1.9.0:
download: "build/r_native_navigation_0.66.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/r_native_navigation_0.66.apk
- --app-activity=com.reactnative.MainActivity
- --app-package=com.reactnative
- --farm=bb
- --device=ANDROID_10|ANDROID_11|ANDROID_12
- --appium-version=1.22
- --a11y-locator
- --fail-fast
- --no-tunnel
- --aws-public-ip
- features/navigation.feature
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager