From 22ad9f600c3c8d896d08ff75f4e572009c34cd74 Mon Sep 17 00:00:00 2001 From: Yousif Ahmed Date: Mon, 31 Jul 2023 12:38:35 +0100 Subject: [PATCH 1/5] 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 | 466 ++++++++++++++++++ .buildkite/react-native-android-pipeline.yml | 441 ----------------- .buildkite/react-native-ios-pipeline.full.yml | 442 +++++++++++++++++ .buildkite/react-native-ios-pipeline.yml | 432 ---------------- 8 files changed, 990 insertions(+), 913 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..56f1347b4b --- /dev/null +++ b/.buildkite/react-native-android-pipeline.full.yml @@ -0,0 +1,466 @@ +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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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: + pull: react-native-android-builder + 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 0927ce2720..963fc52d4f 100644 --- a/.buildkite/react-native-android-pipeline.yml +++ b/.buildkite/react-native-android-pipeline.yml @@ -19,109 +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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: @@ -154,251 +51,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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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: - pull: react-native-android-builder - 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 @@ -450,99 +105,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 From ad648d73fddf54b6ea5cbc4a006a617a22e86448 Mon Sep 17 00:00:00 2001 From: Yousif Ahmed Date: Wed, 2 Aug 2023 13:27:49 +0100 Subject: [PATCH 2/5] Split pipeline files into full and basic subdirectories --- .buildkite/{ => basic}/browser-pipeline.yml | 0 .buildkite/{ => basic}/electron-pipeline.yml | 0 .buildkite/{ => basic}/node-pipeline.yml | 0 .../{ => basic}/react-native-android-pipeline.yml | 0 .buildkite/{ => basic}/react-native-ios-pipeline.yml | 0 .buildkite/{block.full.yml => full/block.yml} | 2 +- .buildkite/{ => full}/pipeline.full.yml | 6 +++--- .../{ => full}/react-native-android-pipeline.full.yml | 0 .../react-native-cli-pipeline.full.yml} | 0 .../{ => full}/react-native-ios-pipeline.full.yml | 0 .buildkite/pipeline.yml | 10 +++++----- .buildkite/pipeline_trigger.sh | 4 ++-- 12 files changed, 11 insertions(+), 11 deletions(-) rename .buildkite/{ => basic}/browser-pipeline.yml (100%) rename .buildkite/{ => basic}/electron-pipeline.yml (100%) rename .buildkite/{ => basic}/node-pipeline.yml (100%) rename .buildkite/{ => basic}/react-native-android-pipeline.yml (100%) rename .buildkite/{ => basic}/react-native-ios-pipeline.yml (100%) rename .buildkite/{block.full.yml => full/block.yml} (65%) rename .buildkite/{ => full}/pipeline.full.yml (87%) rename .buildkite/{ => full}/react-native-android-pipeline.full.yml (100%) rename .buildkite/{react-native-cli-pipeline.yml => full/react-native-cli-pipeline.full.yml} (100%) rename .buildkite/{ => full}/react-native-ios-pipeline.full.yml (100%) diff --git a/.buildkite/browser-pipeline.yml b/.buildkite/basic/browser-pipeline.yml similarity index 100% rename from .buildkite/browser-pipeline.yml rename to .buildkite/basic/browser-pipeline.yml diff --git a/.buildkite/electron-pipeline.yml b/.buildkite/basic/electron-pipeline.yml similarity index 100% rename from .buildkite/electron-pipeline.yml rename to .buildkite/basic/electron-pipeline.yml diff --git a/.buildkite/node-pipeline.yml b/.buildkite/basic/node-pipeline.yml similarity index 100% rename from .buildkite/node-pipeline.yml rename to .buildkite/basic/node-pipeline.yml diff --git a/.buildkite/react-native-android-pipeline.yml b/.buildkite/basic/react-native-android-pipeline.yml similarity index 100% rename from .buildkite/react-native-android-pipeline.yml rename to .buildkite/basic/react-native-android-pipeline.yml diff --git a/.buildkite/react-native-ios-pipeline.yml b/.buildkite/basic/react-native-ios-pipeline.yml similarity index 100% rename from .buildkite/react-native-ios-pipeline.yml rename to .buildkite/basic/react-native-ios-pipeline.yml diff --git a/.buildkite/block.full.yml b/.buildkite/full/block.yml similarity index 65% rename from .buildkite/block.full.yml rename to .buildkite/full/block.yml index 4431824101..b57fbfdead 100644 --- a/.buildkite/block.full.yml +++ b/.buildkite/full/block.yml @@ -4,4 +4,4 @@ steps: - label: 'Upload the full test pipeline' depends_on: 'trigger-full-build' - command: buildkite-agent pipeline upload .buildkite/pipeline.full.yml + command: buildkite-agent pipeline upload .buildkite/full/pipeline.full.yml diff --git a/.buildkite/pipeline.full.yml b/.buildkite/full/pipeline.full.yml similarity index 87% rename from .buildkite/pipeline.full.yml rename to .buildkite/full/pipeline.full.yml index 4c8671e57e..00012c538f 100644 --- a/.buildkite/pipeline.full.yml +++ b/.buildkite/full/pipeline.full.yml @@ -5,18 +5,18 @@ steps: # - 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 + - buildkite-agent pipeline upload .buildkite/full/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 + - buildkite-agent pipeline upload .buildkite/full/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 + - buildkite-agent pipeline upload .buildkite/full/react-native-cli-pipeline.full.yml # # Trigger Expo pipelines diff --git a/.buildkite/react-native-android-pipeline.full.yml b/.buildkite/full/react-native-android-pipeline.full.yml similarity index 100% rename from .buildkite/react-native-android-pipeline.full.yml rename to .buildkite/full/react-native-android-pipeline.full.yml diff --git a/.buildkite/react-native-cli-pipeline.yml b/.buildkite/full/react-native-cli-pipeline.full.yml similarity index 100% rename from .buildkite/react-native-cli-pipeline.yml rename to .buildkite/full/react-native-cli-pipeline.full.yml diff --git a/.buildkite/react-native-ios-pipeline.full.yml b/.buildkite/full/react-native-ios-pipeline.full.yml similarity index 100% rename from .buildkite/react-native-ios-pipeline.full.yml rename to .buildkite/full/react-native-ios-pipeline.full.yml diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index f070fae4e3..e042d0ec89 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -105,30 +105,30 @@ steps: - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: BROWSER STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" depends_on: "package-js" commands: - - buildkite-agent pipeline upload .buildkite/browser-pipeline.yml + - buildkite-agent pipeline upload .buildkite/basic/browser-pipeline.yml - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: ELECTRON STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" skip: Skipped pending PLAT-10345 commands: - - buildkite-agent pipeline upload .buildkite/electron-pipeline.yml + - buildkite-agent pipeline upload .buildkite/basic/electron-pipeline.yml - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: NODE STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" depends_on: "package-js" commands: - - buildkite-agent pipeline upload .buildkite/node-pipeline.yml + - buildkite-agent pipeline upload .buildkite/basic/node-pipeline.yml - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: REACT NATIVE (ANDROID) 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-android-pipeline.yml + - buildkite-agent pipeline upload .buildkite/basic/react-native-android-pipeline.yml - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: REACT NATIVE (IOS) STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" depends_on: - "publish-js" commands: - - buildkite-agent pipeline upload .buildkite/react-native-ios-pipeline.yml + - buildkite-agent pipeline upload .buildkite/basic/react-native-ios-pipeline.yml # # Conditionally trigger full pipeline diff --git a/.buildkite/pipeline_trigger.sh b/.buildkite/pipeline_trigger.sh index c8e8e5cfe2..9f6503ec3d 100755 --- a/.buildkite/pipeline_trigger.sh +++ b/.buildkite/pipeline_trigger.sh @@ -5,9 +5,9 @@ if [[ "$BUILDKITE_MESSAGE" == *"[full ci]"* || "$BUILDKITE_BRANCH" == "main" || "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" == "main" ]]; then echo "Running full build" - buildkite-agent pipeline upload .buildkite/pipeline.full.yml + buildkite-agent pipeline upload .buildkite/full/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 + buildkite-agent pipeline upload .buildkite/full/block.yml fi From bc706660c7f34a4e5a6bc28b89cdd5bc05afba77 Mon Sep 17 00:00:00 2001 From: Yousif Ahmed Date: Wed, 2 Aug 2023 13:29:43 +0100 Subject: [PATCH 3/5] Fix branch name check for master and include main branch for future-proofing --- .buildkite/pipeline_trigger.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.buildkite/pipeline_trigger.sh b/.buildkite/pipeline_trigger.sh index 9f6503ec3d..207f6d9f40 100755 --- a/.buildkite/pipeline_trigger.sh +++ b/.buildkite/pipeline_trigger.sh @@ -3,7 +3,9 @@ if [[ "$BUILDKITE_MESSAGE" == *"[full ci]"* || "$BUILDKITE_BRANCH" == "next" || "$BUILDKITE_BRANCH" == "main" || - "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" == "main" ]]; then + "$BUILDKITE_BRANCH" == "master" || + "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" == "main" || + "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" == "master" ]]; then echo "Running full build" buildkite-agent pipeline upload .buildkite/full/pipeline.full.yml else From dd9a418b61a3adfe1b669636d6311224f41fc796 Mon Sep 17 00:00:00 2001 From: Yousif Ahmed Date: Fri, 11 Aug 2023 10:45:07 +0100 Subject: [PATCH 4/5] add missing bitbar labels --- .buildkite/basic/react-native-android-pipeline.yml | 4 ++-- .buildkite/full/react-native-android-pipeline.full.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.buildkite/basic/react-native-android-pipeline.yml b/.buildkite/basic/react-native-android-pipeline.yml index 963fc52d4f..575e487d26 100644 --- a/.buildkite/basic/react-native-android-pipeline.yml +++ b/.buildkite/basic/react-native-android-pipeline.yml @@ -54,7 +54,7 @@ steps: # # End-to-end tests # - - label: ":android: RN 0.72 (Old Arch) Android 12 end-to-end tests" + - label: ":bitbar: :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: @@ -80,7 +80,7 @@ steps: concurrency_group: "bitbar-app" concurrency_method: eager - - label: ":android: RN 0.72 (New Arch) Android 12 end-to-end tests" + - label: ":bitbar: :android: RN 0.72 (New Arch) Android 12 end-to-end tests" depends_on: "rn-0-72-new-arch-apk" timeout_in_minutes: 60 plugins: diff --git a/.buildkite/full/react-native-android-pipeline.full.yml b/.buildkite/full/react-native-android-pipeline.full.yml index 56f1347b4b..e217f230ea 100644 --- a/.buildkite/full/react-native-android-pipeline.full.yml +++ b/.buildkite/full/react-native-android-pipeline.full.yml @@ -317,7 +317,7 @@ steps: concurrency_group: 'bitbar-app' concurrency_method: eager - - label: ":android: RN 0.71 (Old Arch) Android 12 end-to-end tests" + - label: ":bitbar: :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: @@ -343,7 +343,7 @@ steps: concurrency_group: "bitbar-app" concurrency_method: eager - - label: ":android: RN 0.71 (New Arch) Android 12 end-to-end tests" + - label: ":bitbar: :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: From 72a40c06b9ec8bb648c5f9deab1d4391d8262967 Mon Sep 17 00:00:00 2001 From: Yousif Ahmed Date: Fri, 11 Aug 2023 12:58:15 +0100 Subject: [PATCH 5/5] remove duplicate android builder step from full pipeline --- .../full/react-native-android-pipeline.full.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.buildkite/full/react-native-android-pipeline.full.yml b/.buildkite/full/react-native-android-pipeline.full.yml index e217f230ea..85e6661125 100644 --- a/.buildkite/full/react-native-android-pipeline.full.yml +++ b/.buildkite/full/react-native-android-pipeline.full.yml @@ -2,20 +2,6 @@ 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 #