From d4a83bff8d90d61a6f3f2f98523191e28e50142a Mon Sep 17 00:00:00 2001 From: Yousif Ahmed Date: Mon, 31 Jul 2023 12:38:35 +0100 Subject: [PATCH] split react native and CLI pipeline into basic and full stages --- .buildkite/block.full.yml | 7 + .buildkite/pipeline.full.yml | 56 +++ .buildkite/pipeline.yml | 46 +- .buildkite/pipeline_trigger.sh | 13 + .../react-native-android-pipeline.full.yml | 455 ++++++++++++++++++ .buildkite/react-native-android-pipeline.yml | 430 ----------------- .buildkite/react-native-ios-pipeline.full.yml | 442 +++++++++++++++++ .buildkite/react-native-ios-pipeline.yml | 432 ----------------- 8 files changed, 979 insertions(+), 902 deletions(-) create mode 100644 .buildkite/block.full.yml create mode 100644 .buildkite/pipeline.full.yml create mode 100755 .buildkite/pipeline_trigger.sh create mode 100644 .buildkite/react-native-android-pipeline.full.yml create mode 100644 .buildkite/react-native-ios-pipeline.full.yml diff --git a/.buildkite/block.full.yml b/.buildkite/block.full.yml new file mode 100644 index 0000000000..4431824101 --- /dev/null +++ b/.buildkite/block.full.yml @@ -0,0 +1,7 @@ +steps: + - block: 'Trigger a full build' + key: 'trigger-full-build' + + - label: 'Upload the full test pipeline' + depends_on: 'trigger-full-build' + command: buildkite-agent pipeline upload .buildkite/pipeline.full.yml diff --git a/.buildkite/pipeline.full.yml b/.buildkite/pipeline.full.yml new file mode 100644 index 0000000000..4c8671e57e --- /dev/null +++ b/.buildkite/pipeline.full.yml @@ -0,0 +1,56 @@ +steps: + + # + # Upload full React Native pipelines + # + - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: FULL REACT NATIVE (ANDROID) STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" + commands: + - buildkite-agent pipeline upload .buildkite/react-native-android-pipeline.full.yml + + - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: FULL REACT NATIVE (IOS) STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" + commands: + - buildkite-agent pipeline upload .buildkite/react-native-ios-pipeline.full.yml + + - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: REACT NATIVE CLI STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" + depends_on: + - "publish-js" + - "android-builder-base" + commands: + - buildkite-agent pipeline upload .buildkite/react-native-cli-pipeline.yml + + # + # Trigger Expo pipelines + # + - label: "@bugsnag/expo latest" + depends_on: "publish-js" + trigger: "bugsnag-expo" + build: + # don't specify 'branch' here so we build the default branch in the expo + # repo, which should be the most up-to-date @bugsnag/expo version + env: + BUGSNAG_JS_BRANCH: "${BUILDKITE_BRANCH}" + BUGSNAG_JS_COMMIT: "${BUILDKITE_COMMIT}" + # a branch name that's safe to use as a docker cache identifier + BUGSNAG_JS_CACHE_SAFE_BRANCH_NAME: "${BRANCH_NAME}" + + - label: "@bugsnag/expo v48/next" + depends_on: "publish-js" + trigger: "bugsnag-expo" + build: + branch: "v48/next" + env: + BUGSNAG_JS_BRANCH: "${BUILDKITE_BRANCH}" + BUGSNAG_JS_COMMIT: "${BUILDKITE_COMMIT}" + # a branch name that's safe to use as a docker cache identifier + BUGSNAG_JS_CACHE_SAFE_BRANCH_NAME: "${BRANCH_NAME}" + + - label: "@bugsnag/expo v47/next" + depends_on: "publish-js" + trigger: "bugsnag-expo" + build: + branch: "v47/next" + env: + BUGSNAG_JS_BRANCH: "${BUILDKITE_BRANCH}" + BUGSNAG_JS_COMMIT: "${BUILDKITE_COMMIT}" + # a branch name that's safe to use as a docker cache identifier + BUGSNAG_JS_CACHE_SAFE_BRANCH_NAME: "${BRANCH_NAME}" \ No newline at end of file diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index caf1548428..f070fae4e3 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -130,43 +130,9 @@ steps: commands: - buildkite-agent pipeline upload .buildkite/react-native-ios-pipeline.yml - - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: REACT NATIVE CLI STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" - depends_on: - - "publish-js" - - "android-builder-base" - commands: - - buildkite-agent pipeline upload .buildkite/react-native-cli-pipeline.yml - - - label: "@bugsnag/expo latest" - depends_on: "publish-js" - trigger: "bugsnag-expo" - build: - # don't specify 'branch' here so we build the default branch in the expo - # repo, which should be the most up-to-date @bugsnag/expo version - env: - BUGSNAG_JS_BRANCH: "${BUILDKITE_BRANCH}" - BUGSNAG_JS_COMMIT: "${BUILDKITE_COMMIT}" - # a branch name that's safe to use as a docker cache identifier - BUGSNAG_JS_CACHE_SAFE_BRANCH_NAME: "${BRANCH_NAME}" - - - label: "@bugsnag/expo v48/next" - depends_on: "publish-js" - trigger: "bugsnag-expo" - build: - branch: "v48/next" - env: - BUGSNAG_JS_BRANCH: "${BUILDKITE_BRANCH}" - BUGSNAG_JS_COMMIT: "${BUILDKITE_COMMIT}" - # a branch name that's safe to use as a docker cache identifier - BUGSNAG_JS_CACHE_SAFE_BRANCH_NAME: "${BRANCH_NAME}" - - - label: "@bugsnag/expo v47/next" - depends_on: "publish-js" - trigger: "bugsnag-expo" - build: - branch: "v47/next" - env: - BUGSNAG_JS_BRANCH: "${BUILDKITE_BRANCH}" - BUGSNAG_JS_COMMIT: "${BUILDKITE_COMMIT}" - # a branch name that's safe to use as a docker cache identifier - BUGSNAG_JS_CACHE_SAFE_BRANCH_NAME: "${BRANCH_NAME}" + # + # Conditionally trigger full pipeline + # + - label: 'Conditionally trigger full set of tests' + timeout_in_minutes: 30 + command: sh -c .buildkite/pipeline_trigger.sh diff --git a/.buildkite/pipeline_trigger.sh b/.buildkite/pipeline_trigger.sh new file mode 100755 index 0000000000..c8e8e5cfe2 --- /dev/null +++ b/.buildkite/pipeline_trigger.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +if [[ "$BUILDKITE_MESSAGE" == *"[full ci]"* || + "$BUILDKITE_BRANCH" == "next" || + "$BUILDKITE_BRANCH" == "main" || + "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" == "main" ]]; then + echo "Running full build" + buildkite-agent pipeline upload .buildkite/pipeline.full.yml +else + # Basic build, but allow a full build to be triggered + echo "Running basic build" + buildkite-agent pipeline upload .buildkite/block.full.yml +fi diff --git a/.buildkite/react-native-android-pipeline.full.yml b/.buildkite/react-native-android-pipeline.full.yml new file mode 100644 index 0000000000..aa4f5e5f26 --- /dev/null +++ b/.buildkite/react-native-android-pipeline.full.yml @@ -0,0 +1,455 @@ +steps: + + - group: "React Native (Android) Tests" + steps: + # + # Android builder + # + - label: ":docker: Build RN Android Builder image" + key: "android-builder-image" + timeout_in_minutes: 30 + plugins: + - docker-compose#v4.12.0: + build: react-native-android-builder + image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js + cache-from: react-native-android-builder:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-${BRANCH_NAME} + - docker-compose#v4.12.0: + push: react-native-android-builder:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-${BRANCH_NAME} + + # + # Test fixtures + # + - label: ":android: Build RN 0.60 apk" + key: "rn-0-60-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.60" + LANG: "en_US.UTF-8" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + artifact_paths: + - build/rn0.60.apk + + - label: ":android: Build RN 0.66 apk" + key: "rn-0-66-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.66" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + artifact_paths: + - build/rn0.66.apk + + - label: ":android: Build RN 0.67 apk" + key: "rn-0-67-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.67" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + artifact_paths: + - build/rn0.67.apk + + - label: ":android: Build RN 0.68 Hermes apk" + key: "rn-0-68-hermes-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.68-hermes" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + artifact_paths: + - build/rn0.68-hermes.apk + + - label: ":android: Build RN 0.69 apk" + key: "rn-0-69-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.69" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + 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" + 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 react-navigation 0.60 apk" + key: "react-navigation-0-60-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.60" + JS_SOURCE_DIR: "react_navigation_js" + ARTEFACT_NAME: "r_navigation_0.60" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + artifact_paths: + - build/r_navigation_0.60.apk + + - label: ":android: Build react-navigation 0.69 apk" + key: "react-navigation-0-69-apk" + depends_on: + - "android-builder-image" + 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: + run: react-native-android-builder + artifact_paths: + - build/r_navigation_0.69.apk + + - label: ":android: Build react-native-navigation 0.60 apk" + key: "react-native-navigation-0-60-apk" + depends_on: + - "android-builder-image" + timeout_in_minutes: 60 + env: + REACT_NATIVE_VERSION: "rn0.60" + JS_SOURCE_DIR: "react_native_navigation_js" + ARTEFACT_NAME: "r_native_navigation_0.60" + plugins: + - docker-compose#v4.12.0: + run: react-native-android-builder + artifact_paths: + - build/r_native_navigation_0.60.apk + + - label: ":android: Build react-native-navigation 0.66 apk" + key: "react-native-navigation-0-66-apk" + depends_on: + - "android-builder-image" + 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: + run: react-native-android-builder + artifact_paths: + - build/r_native_navigation_0.66.apk + + # + # End-to-end tests + # + - label: ":bitbar: :android: RN 0.60 Android end-to-end tests" + depends_on: "rn-0-60-apk" + timeout_in_minutes: 60 + plugins: + artifacts#v1.9.0: + download: "build/rn0.60.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.60.apk + - --farm=bb + - --device=ANDROID_10|ANDROID_11|ANDROID_12 + - --a11y-locator + - --fail-fast + - --no-tunnel + - --aws-public-ip + env: + SKIP_NAVIGATION_SCENARIOS: "true" + concurrency: 25 + concurrency_group: 'bitbar-app' + concurrency_method: eager + + - 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 + - --farm=bb + - --device=ANDROID_10|ANDROID_11|ANDROID_12 + - --a11y-locator + - --fail-fast + - --no-tunnel + - --aws-public-ip + env: + SKIP_NAVIGATION_SCENARIOS: "true" + concurrency: 25 + concurrency_group: 'bitbar-app' + 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 + - --farm=bb + - --device=ANDROID_10|ANDROID_11|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: ":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 + - --farm=bb + - --device=ANDROID_10|ANDROID_11|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: ":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 + - --farm=bb + - --device=ANDROID_10|ANDROID_11|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 (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 + plugins: + artifacts#v1.9.0: + download: "build/rn0.71-new-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-new-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: ":bitbar: :android: react-navigation 0.60 Android end-to-end tests" + depends_on: "react-navigation-0-60-apk" + timeout_in_minutes: 60 + plugins: + artifacts#v1.9.0: + download: "build/r_navigation_0.60.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.60.apk + - --farm=bb + - --device=ANDROID_10|ANDROID_11|ANDROID_12 + - --a11y-locator + - --fail-fast + - --no-tunnel + - --aws-public-ip + - features/navigation.feature + concurrency: 25 + concurrency_group: 'bitbar-app' + concurrency_method: eager + + - 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 + - --farm=bb + - --device=ANDROID_10|ANDROID_11|ANDROID_12 + - --a11y-locator + - --fail-fast + - --no-tunnel + - --aws-public-ip + - features/navigation.feature + concurrency: 25 + concurrency_group: 'bitbar-app' + concurrency_method: eager + + - label: ":bitbar: :android: react-native-navigation 0.60 Android end-to-end tests" + depends_on: "react-native-navigation-0-60-apk" + timeout_in_minutes: 60 + plugins: + artifacts#v1.9.0: + download: "build/r_native_navigation_0.60.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.60.apk + - --farm=bb + - --device=ANDROID_10|ANDROID_11|ANDROID_12 + - --a11y-locator + - --fail-fast + - --no-tunnel + - --aws-public-ip + - features/navigation.feature + concurrency: 25 + concurrency_group: 'bitbar-app' + 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 + - --farm=bb + - --device=ANDROID_10|ANDROID_11|ANDROID_12 + - --a11y-locator + - --fail-fast + - --no-tunnel + - --aws-public-ip + - features/navigation.feature + concurrency: 25 + concurrency_group: 'bitbar-app' + concurrency_method: eager diff --git a/.buildkite/react-native-android-pipeline.yml b/.buildkite/react-native-android-pipeline.yml index f7783f7157..dd0ebc35a6 100644 --- a/.buildkite/react-native-android-pipeline.yml +++ b/.buildkite/react-native-android-pipeline.yml @@ -19,102 +19,6 @@ steps: # # Test fixtures # - - label: ":android: Build RN 0.60 apk" - key: "rn-0-60-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.60" - LANG: "en_US.UTF-8" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - artifact_paths: - - build/rn0.60.apk - - - label: ":android: Build RN 0.66 apk" - key: "rn-0-66-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.66" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - artifact_paths: - - build/rn0.66.apk - - - label: ":android: Build RN 0.67 apk" - key: "rn-0-67-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.67" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - artifact_paths: - - build/rn0.67.apk - - - label: ":android: Build RN 0.68 Hermes apk" - key: "rn-0-68-hermes-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.68-hermes" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - artifact_paths: - - build/rn0.68-hermes.apk - - - label: ":android: Build RN 0.69 apk" - key: "rn-0-69-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.69" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - 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" - 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: @@ -145,247 +49,9 @@ steps: artifact_paths: - build/rn0.72-new-arch.apk - - label: ":android: Build react-navigation 0.60 apk" - key: "react-navigation-0-60-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.60" - JS_SOURCE_DIR: "react_navigation_js" - ARTEFACT_NAME: "r_navigation_0.60" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - artifact_paths: - - build/r_navigation_0.60.apk - - - label: ":android: Build react-navigation 0.69 apk" - key: "react-navigation-0-69-apk" - depends_on: - - "android-builder-image" - 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: - run: react-native-android-builder - artifact_paths: - - build/r_navigation_0.69.apk - - - label: ":android: Build react-native-navigation 0.60 apk" - key: "react-native-navigation-0-60-apk" - depends_on: - - "android-builder-image" - timeout_in_minutes: 60 - env: - REACT_NATIVE_VERSION: "rn0.60" - JS_SOURCE_DIR: "react_native_navigation_js" - ARTEFACT_NAME: "r_native_navigation_0.60" - plugins: - - docker-compose#v4.12.0: - run: react-native-android-builder - artifact_paths: - - build/r_native_navigation_0.60.apk - - - label: ":android: Build react-native-navigation 0.66 apk" - key: "react-native-navigation-0-66-apk" - depends_on: - - "android-builder-image" - 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: - run: react-native-android-builder - artifact_paths: - - build/r_native_navigation_0.66.apk - # # End-to-end tests # - - label: ":bitbar: :android: RN 0.60 Android end-to-end tests" - depends_on: "rn-0-60-apk" - timeout_in_minutes: 60 - plugins: - artifacts#v1.9.0: - download: "build/rn0.60.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.60.apk - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - env: - SKIP_NAVIGATION_SCENARIOS: "true" - concurrency: 25 - concurrency_group: 'bitbar-app' - concurrency_method: eager - - - 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 - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - env: - SKIP_NAVIGATION_SCENARIOS: "true" - concurrency: 25 - concurrency_group: 'bitbar-app' - 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 - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - env: - SKIP_NAVIGATION_SCENARIOS: "true" - concurrency: 25 - concurrency_group: 'bitbar-app' - 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 - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - env: - SKIP_NAVIGATION_SCENARIOS: "true" - concurrency: 25 - concurrency_group: 'bitbar-app' - 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 - - --farm=bb - - --device=ANDROID_10|ANDROID_11|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 (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 - plugins: - artifacts#v1.9.0: - download: "build/rn0.71-new-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-new-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 (Old Arch) Android 12 end-to-end tests" depends_on: "rn-0-72-old-arch-apk" timeout_in_minutes: 60 @@ -437,99 +103,3 @@ steps: concurrency: 25 concurrency_group: "bitbar-app" concurrency_method: eager - - - label: ":bitbar: :android: react-navigation 0.60 Android end-to-end tests" - depends_on: "react-navigation-0-60-apk" - timeout_in_minutes: 60 - plugins: - artifacts#v1.9.0: - download: "build/r_navigation_0.60.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.60.apk - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - - features/navigation.feature - concurrency: 25 - concurrency_group: 'bitbar-app' - concurrency_method: eager - - - 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 - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - - features/navigation.feature - concurrency: 25 - concurrency_group: 'bitbar-app' - concurrency_method: eager - - - label: ":bitbar: :android: react-native-navigation 0.60 Android end-to-end tests" - depends_on: "react-native-navigation-0-60-apk" - timeout_in_minutes: 60 - plugins: - artifacts#v1.9.0: - download: "build/r_native_navigation_0.60.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.60.apk - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - - features/navigation.feature - concurrency: 25 - concurrency_group: 'bitbar-app' - 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 - - --farm=bb - - --device=ANDROID_10|ANDROID_11|ANDROID_12 - - --a11y-locator - - --fail-fast - - --no-tunnel - - --aws-public-ip - - features/navigation.feature - concurrency: 25 - concurrency_group: 'bitbar-app' - concurrency_method: eager diff --git a/.buildkite/react-native-ios-pipeline.full.yml b/.buildkite/react-native-ios-pipeline.full.yml new file mode 100644 index 0000000000..0f71f9448c --- /dev/null +++ b/.buildkite/react-native-ios-pipeline.full.yml @@ -0,0 +1,442 @@ +steps: + + - group: "React Native (iOS) Tests" + steps: + + # + # Test fixtures + # + - label: ":ios: Build RN 0.60 ipa" + key: "rn-0-60-ipa" + timeout_in_minutes: 60 + agents: + queue: "ms-mac-10-15-5" + env: + REACT_NATIVE_VERSION: rn0.60 + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode11.app" + artifact_paths: build/rn0.60.ipa + commands: + - npm run test:build-react-native-ios + + - label: ":ios: Build RN 0.66 ipa" + key: "rn-0-66-ipa" + timeout_in_minutes: 60 + agents: + queue: "opensource-arm-mac-cocoa-12" + env: + REACT_NATIVE_VERSION: rn0.66 + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode13.app" + artifact_paths: build/rn0.66.ipa + commands: + - npm run test:build-react-native-ios + + - label: ":ios: Build RN 0.67 ipa" + key: "rn-0-67-ipa" + timeout_in_minutes: 60 + agents: + queue: "opensource-arm-mac-cocoa-12" + env: + REACT_NATIVE_VERSION: rn0.67 + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode13.app" + artifact_paths: build/rn0.67.ipa + commands: + - npm run test:build-react-native-ios + + - label: ":ios: Build RN 0.68 Hermes ipa" + key: "rn-0-68-hermes-ipa" + timeout_in_minutes: 60 + agents: + queue: "opensource-arm-mac-cocoa-12" + env: + REACT_NATIVE_VERSION: rn0.68-hermes + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode13.app" + artifact_paths: build/rn0.68-hermes.ipa + commands: + - npm run test:build-react-native-ios + + - label: ":ios: Build RN 0.69 ipa" + key: "rn-0-69-ipa" + timeout_in_minutes: 60 + agents: + queue: "opensource-arm-mac-cocoa-12" + env: + REACT_NATIVE_VERSION: rn0.69 + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode13.app" + artifact_paths: build/rn0.69.ipa + 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-new-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: "1" + ARTEFACT_NAME: "rn0.71-new-arch" + artifact_paths: build/rn0.71-new-arch.ipa + commands: + - npm run test:build-react-native-ios + + # See: PLAT-5173 + - label: ":ios: Build react-navigation 0.60 ipa" + skip: "See PLAT-5173" + key: "react-navigation-0-60-ipa" + timeout_in_minutes: 60 + agents: + queue: "ms-mac-10-15-5" + env: + REACT_NATIVE_VERSION: rn0.60 + JS_SOURCE_DIR: "react_navigation_js" + ARTEFACT_NAME: "r_navigation_0.60" + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode11.app" + artifact_paths: build/r_navigation_0.60.ipa + commands: + - npm run test:build-react-native-ios + + - label: ":ios: Build react-navigation 0.69 ipa" + key: "react-navigation-0-69-ipa" + timeout_in_minutes: 60 + agents: + queue: "opensource-arm-mac-cocoa-12" + 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/Xcode13.app" + artifact_paths: build/r_navigation_0.69.ipa + commands: + - npm run test:build-react-native-ios + + # See: PLAT-5173 + - label: ":ios: Build react-native-navigation 0.60 ipa" + skip: "See PLAT-5173" + key: "react-native-navigation-0-60-ipa" + timeout_in_minutes: 60 + agents: + queue: "ms-mac-10-15-5" + env: + REACT_NATIVE_VERSION: rn0.60 + JS_SOURCE_DIR: "react_native_navigation_js" + ARTEFACT_NAME: "r_native_navigation_0.60" + LANG: "en_US.UTF-8" + DEVELOPER_DIR: "/Applications/Xcode11.app" + artifact_paths: build/r_native_navigation_0.60.ipa + commands: + - npm run test:build-react-native-ios + + # 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: "opensource-arm-mac-cocoa-12" + 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/Xcode13.app" + artifact_paths: build/r_native_navigation_0.66.ipa + commands: + - npm run test:build-react-native-ios + + # + # End-to-end tests + # + - label: ":browserstack: :ios: RN 0.60 iOS 12 end-to-end tests" + depends_on: "rn-0-60-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/rn0.60.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.60.ipa + - --farm=bs + - --device=IOS_12 + - --a11y-locator + - --appium-version=1.18.0 + - --fail-fast + env: + SKIP_NAVIGATION_SCENARIOS: "true" + concurrency: 5 + concurrency_group: "browserstack-app" + concurrency_method: eager + + - label: ":browserstack: :ios: RN 0.66 iOS 14 end-to-end tests" + depends_on: "rn-0-66-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/rn0.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/rn0.66.ipa + - --farm=bs + - --device=IOS_14 + - --a11y-locator + - --appium-version=1.18.0 + - --fail-fast + env: + SKIP_NAVIGATION_SCENARIOS: "true" + concurrency: 5 + concurrency_group: "browserstack-app" + concurrency_method: eager + + - label: ":browserstack: :ios: RN 0.67 iOS 14 end-to-end tests" + depends_on: "rn-0-67-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/rn0.67.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.67.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: ":browserstack: :ios: RN 0.69 iOS 14 end-to-end tests" + depends_on: "rn-0-69-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/rn0.69.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.69.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: ":browserstack: :ios: RN 0.68 (hermes) iOS 14 end-to-end tests" + depends_on: "rn-0-68-hermes-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/rn0.68-hermes.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.68-hermes.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 (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-new-arch-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/rn0.71-new-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-new-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 + + # See: PLAT-5173 + - label: ":browserstack: :ios: react-navigation 0.60 iOS 12 end-to-end tests" + skip: "See PLAT-5173" + depends_on: "react-navigation-0-60-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/r_navigation_0.60.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_navigation_0.60.ipa + - --farm=bs + - --device=IOS_12 + - --a11y-locator + - --appium-version=1.18.0 + - --fail-fast + - features/navigation.feature + concurrency: 5 + concurrency_group: "browserstack-app" + concurrency_method: eager + + - label: ":browserstack: :ios: react-navigation 0.69 iOS 14 end-to-end tests" + depends_on: "react-navigation-0-69-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/r_navigation_0.69.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_navigation_0.69.ipa + - --farm=bs + - --device=IOS_14 + - --a11y-locator + - --appium-version=1.21.0 + - --fail-fast + - features/navigation.feature + concurrency: 5 + concurrency_group: "browserstack-app" + concurrency_method: eager + + # See: PLAT-5173 + - label: ":browserstack: :ios: react-native-navigation 0.60 iOS 13 end-to-end tests" + skip: "See PLAT-5173" + depends_on: "react-native-navigation-0-60-ipa" + timeout_in_minutes: 60 + plugins: + artifacts#v1.5.0: + download: "build/r_native_navigation_0.60.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.60.ipa + - --farm=bs + - --device=IOS_13 + - --appium-version=1.18.0 + - --a11y-locator + - --fail-fast + - features/navigation.feature + concurrency: 5 + concurrency_group: "browserstack-app" + concurrency_method: eager + + # See: PLAT-5173 + - label: ":browserstack: :ios: react-native-navigation 0.66 iOS 13 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_13 + - --a11y-locator + - --appium-version=1.18.0 + - --fail-fast + - features/navigation.feature + concurrency: 5 + concurrency_group: "browserstack-app" + concurrency_method: eager diff --git a/.buildkite/react-native-ios-pipeline.yml b/.buildkite/react-native-ios-pipeline.yml index 7bd69cea73..ae949565d8 100644 --- a/.buildkite/react-native-ios-pipeline.yml +++ b/.buildkite/react-native-ios-pipeline.yml @@ -6,101 +6,6 @@ steps: # # Test fixtures # - - label: ":ios: Build RN 0.60 ipa" - key: "rn-0-60-ipa" - timeout_in_minutes: 60 - agents: - queue: "ms-mac-10-15-5" - env: - REACT_NATIVE_VERSION: rn0.60 - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode11.app" - artifact_paths: build/rn0.60.ipa - commands: - - npm run test:build-react-native-ios - - - label: ":ios: Build RN 0.66 ipa" - key: "rn-0-66-ipa" - timeout_in_minutes: 60 - agents: - queue: "opensource-arm-mac-cocoa-12" - env: - REACT_NATIVE_VERSION: rn0.66 - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode13.app" - artifact_paths: build/rn0.66.ipa - commands: - - npm run test:build-react-native-ios - - - label: ":ios: Build RN 0.67 ipa" - key: "rn-0-67-ipa" - timeout_in_minutes: 60 - agents: - queue: "opensource-arm-mac-cocoa-12" - env: - REACT_NATIVE_VERSION: rn0.67 - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode13.app" - artifact_paths: build/rn0.67.ipa - commands: - - npm run test:build-react-native-ios - - - label: ":ios: Build RN 0.68 Hermes ipa" - key: "rn-0-68-hermes-ipa" - timeout_in_minutes: 60 - agents: - queue: "opensource-arm-mac-cocoa-12" - env: - REACT_NATIVE_VERSION: rn0.68-hermes - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode13.app" - artifact_paths: build/rn0.68-hermes.ipa - commands: - - npm run test:build-react-native-ios - - - label: ":ios: Build RN 0.69 ipa" - key: "rn-0-69-ipa" - timeout_in_minutes: 60 - agents: - queue: "opensource-arm-mac-cocoa-12" - env: - REACT_NATIVE_VERSION: rn0.69 - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode13.app" - artifact_paths: build/rn0.69.ipa - 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-new-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: "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 @@ -131,248 +36,9 @@ steps: commands: - npm run test:build-react-native-ios - # See: PLAT-5173 - - label: ":ios: Build react-navigation 0.60 ipa" - skip: "See PLAT-5173" - key: "react-navigation-0-60-ipa" - timeout_in_minutes: 60 - agents: - queue: "ms-mac-10-15-5" - env: - REACT_NATIVE_VERSION: rn0.60 - JS_SOURCE_DIR: "react_navigation_js" - ARTEFACT_NAME: "r_navigation_0.60" - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode11.app" - artifact_paths: build/r_navigation_0.60.ipa - commands: - - npm run test:build-react-native-ios - - - label: ":ios: Build react-navigation 0.69 ipa" - key: "react-navigation-0-69-ipa" - timeout_in_minutes: 60 - agents: - queue: "opensource-arm-mac-cocoa-12" - 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/Xcode13.app" - artifact_paths: build/r_navigation_0.69.ipa - commands: - - npm run test:build-react-native-ios - - # See: PLAT-5173 - - label: ":ios: Build react-native-navigation 0.60 ipa" - skip: "See PLAT-5173" - key: "react-native-navigation-0-60-ipa" - timeout_in_minutes: 60 - agents: - queue: "ms-mac-10-15-5" - env: - REACT_NATIVE_VERSION: rn0.60 - JS_SOURCE_DIR: "react_native_navigation_js" - ARTEFACT_NAME: "r_native_navigation_0.60" - LANG: "en_US.UTF-8" - DEVELOPER_DIR: "/Applications/Xcode11.app" - artifact_paths: build/r_native_navigation_0.60.ipa - commands: - - npm run test:build-react-native-ios - - # 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: "opensource-arm-mac-cocoa-12" - 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/Xcode13.app" - artifact_paths: build/r_native_navigation_0.66.ipa - commands: - - npm run test:build-react-native-ios - # # End-to-end tests # - - label: ":browserstack: :ios: RN 0.60 iOS 12 end-to-end tests" - depends_on: "rn-0-60-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/rn0.60.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.60.ipa - - --farm=bs - - --device=IOS_12 - - --a11y-locator - - --appium-version=1.18.0 - - --fail-fast - env: - SKIP_NAVIGATION_SCENARIOS: "true" - concurrency: 5 - concurrency_group: "browserstack-app" - concurrency_method: eager - - - label: ":browserstack: :ios: RN 0.66 iOS 14 end-to-end tests" - depends_on: "rn-0-66-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/rn0.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/rn0.66.ipa - - --farm=bs - - --device=IOS_14 - - --a11y-locator - - --appium-version=1.18.0 - - --fail-fast - env: - SKIP_NAVIGATION_SCENARIOS: "true" - concurrency: 5 - concurrency_group: "browserstack-app" - concurrency_method: eager - - - label: ":browserstack: :ios: RN 0.67 iOS 14 end-to-end tests" - depends_on: "rn-0-67-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/rn0.67.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.67.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: ":browserstack: :ios: RN 0.69 iOS 14 end-to-end tests" - depends_on: "rn-0-69-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/rn0.69.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.69.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: ":browserstack: :ios: RN 0.68 (hermes) iOS 14 end-to-end tests" - depends_on: "rn-0-68-hermes-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/rn0.68-hermes.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.68-hermes.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 (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-new-arch-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/rn0.71-new-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-new-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 (Old Arch) iOS 14 end-to-end tests" depends_on: "rn-0-72-old-arch-ipa" timeout_in_minutes: 60 @@ -422,101 +88,3 @@ steps: concurrency: 5 concurrency_group: "browserstack-app" concurrency_method: eager - - # See: PLAT-5173 - - label: ":browserstack: :ios: react-navigation 0.60 iOS 12 end-to-end tests" - skip: "See PLAT-5173" - depends_on: "react-navigation-0-60-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/r_navigation_0.60.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_navigation_0.60.ipa - - --farm=bs - - --device=IOS_12 - - --a11y-locator - - --appium-version=1.18.0 - - --fail-fast - - features/navigation.feature - concurrency: 5 - concurrency_group: "browserstack-app" - concurrency_method: eager - - - label: ":browserstack: :ios: react-navigation 0.69 iOS 14 end-to-end tests" - depends_on: "react-navigation-0-69-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/r_navigation_0.69.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_navigation_0.69.ipa - - --farm=bs - - --device=IOS_14 - - --a11y-locator - - --appium-version=1.21.0 - - --fail-fast - - features/navigation.feature - concurrency: 5 - concurrency_group: "browserstack-app" - concurrency_method: eager - - # See: PLAT-5173 - - label: ":browserstack: :ios: react-native-navigation 0.60 iOS 13 end-to-end tests" - skip: "See PLAT-5173" - depends_on: "react-native-navigation-0-60-ipa" - timeout_in_minutes: 60 - plugins: - artifacts#v1.5.0: - download: "build/r_native_navigation_0.60.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.60.ipa - - --farm=bs - - --device=IOS_13 - - --appium-version=1.18.0 - - --a11y-locator - - --fail-fast - - features/navigation.feature - concurrency: 5 - concurrency_group: "browserstack-app" - concurrency_method: eager - - # See: PLAT-5173 - - label: ":browserstack: :ios: react-native-navigation 0.66 iOS 13 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_13 - - --a11y-locator - - --appium-version=1.18.0 - - --fail-fast - - features/navigation.feature - concurrency: 5 - concurrency_group: "browserstack-app" - concurrency_method: eager