bugsnag/bugsnag-js

View on GitHub
.buildkite/full/react-native-android-pipeline.full.yml

Summary

Maintainability
Test Coverage
steps:

  - group: "React Native (Android) Tests"
    steps:
      #
      # Android builder
      #
      - label: ":docker: Build RN Android Builder image (Java 11, Node 16)"
        key: "android-builder-image-java-11-node-16"
        timeout_in_minutes: 30
        plugins:
          - docker-compose#v4.12.0:
              build: react-native-android-builder-java-11-node-16
              image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
              cache-from:  react-native-android-builder-java-11-node-16:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-${BRANCH_NAME}
          - docker-compose#v4.12.0:
              push: react-native-android-builder-java-11-node-16:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-${BRANCH_NAME}
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      #
      # Test fixtures
      #
      - label: ":android: Build RN 0.66 apk"
        key: "rn-0-66-apk"
        depends_on:
          - "android-builder-image-java-11-node-16"
        timeout_in_minutes: 60
        env:
          REACT_NATIVE_VERSION: "rn0.66"
        plugins:
          - docker-compose#v4.12.0:
              pull: react-native-android-builder-java-11-node-16
              run: react-native-android-builder-java-11-node-16
        artifact_paths:
          - build/rn0.66.apk
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":android: Build RN 0.67 apk"
        key: "rn-0-67-apk"
        depends_on:
          - "android-builder-image-java-11-node-16"
        timeout_in_minutes: 60
        env:
          REACT_NATIVE_VERSION: "rn0.67"
        plugins:
          - docker-compose#v4.12.0:
              pull: react-native-android-builder-java-11-node-16
              run: react-native-android-builder-java-11-node-16
        artifact_paths:
          - build/rn0.67.apk
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":android: Build RN 0.68 Hermes apk"
        key: "rn-0-68-hermes-apk"
        depends_on:
          - "android-builder-image-java-11-node-16"
        timeout_in_minutes: 60
        env:
          REACT_NATIVE_VERSION: "rn0.68-hermes"
        plugins:
          - docker-compose#v4.12.0:
              pull: react-native-android-builder-java-11-node-16
              run: react-native-android-builder-java-11-node-16
        artifact_paths:
          - build/rn0.68-hermes.apk
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":android: Build RN 0.69 apk"
        key: "rn-0-69-apk"
        depends_on:
          - "android-builder-image-java-11-node-16"
        timeout_in_minutes: 60
        env:
          REACT_NATIVE_VERSION: "rn0.69"
        plugins:
          - docker-compose#v4.12.0:
              pull: react-native-android-builder-java-11-node-16
              run: react-native-android-builder-java-11-node-16
        artifact_paths:
          - build/rn0.69.apk
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ':android: Build RN {{matrix}} test fixture APK (Old Arch)'
        key: "build-react-native-android-fixture-old-arch-full"
        timeout_in_minutes: 30
        agents:
          queue: macos-14
        env:
          JAVA_VERSION: "17"
          NODE_VERSION: "18"
          RN_VERSION: "{{matrix}}"
          RCT_NEW_ARCH_ENABLED: "0"
          BUILD_ANDROID: "true"
        artifact_paths:
          - "test/react-native/features/fixtures/generated/old-arch/**/reactnative.apk"
        commands:
          - "bundle install"
          - "node scripts/generate-react-native-fixture.js"
        matrix:
          - "0.71"
          - "0.72"
          - "0.73"
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ':android: Build RN {{matrix}} test fixture APK (New Arch)'
        key: "build-react-native-android-fixture-new-arch-full"
        timeout_in_minutes: 30
        agents:
          queue: macos-14
        env:
          JAVA_VERSION: "17"
          NODE_VERSION: "18"
          RN_VERSION: "{{matrix}}"
          RCT_NEW_ARCH_ENABLED: "1"
          BUILD_ANDROID: "true"
        artifact_paths:
          - "test/react-native/features/fixtures/generated/new-arch/**/reactnative.apk"
        commands:
          - "bundle install"
          - "node scripts/generate-react-native-fixture.js"
        retry:
          automatic:
            - exit_status: "*"
              limit: 1
        matrix:
          - "0.71"
          - "0.72"
          - "0.73"

      - label: ":android: Build react-navigation 0.69 apk"
        key: "react-navigation-0-69-apk"
        depends_on:
          - "android-builder-image-java-11-node-16"
        timeout_in_minutes: 60
        env:
          REACT_NATIVE_VERSION: "rn0.69"
          JS_SOURCE_DIR: "react_navigation_js"
          ARTEFACT_NAME: "r_navigation_0.69"
        plugins:
          - docker-compose#v4.12.0:
              pull: react-native-android-builder-java-11-node-16
              run: react-native-android-builder-java-11-node-16
        artifact_paths:
          - build/r_navigation_0.69.apk
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":android: Build react-native-navigation 0.66 apk"
        key: "react-native-navigation-0-66-apk"
        depends_on:
          - "android-builder-image-java-11-node-16"
        timeout_in_minutes: 60
        env:
          REACT_NATIVE_VERSION: "rn0.66"
          JS_SOURCE_DIR: "react_native_navigation_js"
          ARTEFACT_NAME: "r_native_navigation_0.66"
        plugins:
          - docker-compose#v4.12.0:
              pull: react-native-android-builder-java-11-node-16
              run: react-native-android-builder-java-11-node-16
        artifact_paths:
          - build/r_native_navigation_0.66.apk
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      #
      # End-to-end tests
      #
      - label: ":bitbar: :android: RN 0.66 Android end-to-end tests"
        depends_on: "rn-0-66-apk"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "build/rn0.66.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.7.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=build/rn0.66.apk
              - --app-activity=com.reactnative.MainActivity
              - --app-package=com.reactnative
              - --farm=bb
              - --device=ANDROID_10|ANDROID_11|ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
        concurrency: 25
        concurrency_group: 'bitbar'
        concurrency_method: eager

      - label: ":bitbar: :android: RN 0.67 Android end-to-end tests"
        depends_on: "rn-0-67-apk"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "build/rn0.67.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.7.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=build/rn0.67.apk
              - --app-activity=com.reactnative.MainActivity
              - --app-package=com.reactnative
              - --farm=bb
              - --device=ANDROID_10|ANDROID_11|ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          HERMES: "true"
        concurrency: 25
        concurrency_group: 'bitbar'
        concurrency_method: eager

      - label: ":bitbar: :android: RN 0.69 Android end-to-end tests"
        depends_on: "rn-0-69-apk"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "build/rn0.69.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.7.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=build/rn0.69.apk
              - --app-activity=com.reactnative.MainActivity
              - --app-package=com.reactnative
              - --farm=bb
              - --device=ANDROID_10|ANDROID_11|ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          HERMES: "true"
        concurrency: 25
        concurrency_group: 'bitbar'
        concurrency_method: eager

      - label: ":bitbar: :android: RN 0.68 (Hermes) Android end-to-end tests"
        depends_on: "rn-0-68-hermes-apk"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "build/rn0.68-hermes.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.7.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=build/rn0.68-hermes.apk
              - --app-activity=com.reactnative.MainActivity
              - --app-package=com.reactnative
              - --farm=bb
              - --device=ANDROID_10|ANDROID_11|ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          HERMES: "true"
        concurrency: 25
        concurrency_group: 'bitbar'
        concurrency_method: eager

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

      - label: ":bitbar: :android: RN {{matrix}} Android 12 (New Arch) end-to-end tests"
        depends_on: "build-react-native-android-fixture-new-arch-full"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "test/react-native/features/fixtures/generated/new-arch/{{matrix}}/reactnative.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.12.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=/app/features/fixtures/generated/new-arch/{{matrix}}/reactnative.apk
              - --farm=bb
              - --device=ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        retry:
          manual:
            permit_on_passed: true
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          RCT_NEW_ARCH_ENABLED: "1"
          RN_VERSION: "{{matrix}}"
        concurrency: 25
        concurrency_group: "bitbar"
        concurrency_method: eager
        matrix:
          - "0.71"
          - "0.72"
          - "0.73"

      - label: ":bitbar: :android: react-navigation 0.69 Android end-to-end tests"
        depends_on: "react-navigation-0-69-apk"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "build/r_navigation_0.69.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.7.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=build/r_navigation_0.69.apk
              - --app-activity=com.reactnative.MainActivity
              - --app-package=com.reactnative
              - --farm=bb
              - --device=ANDROID_10|ANDROID_11|ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
              - features/navigation.feature
        concurrency: 25
        concurrency_group: 'bitbar'
        concurrency_method: eager

      - label: ":bitbar: :android: react-native-navigation 0.66 Android end-to-end tests"
        depends_on: "react-native-navigation-0-66-apk"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "build/r_native_navigation_0.66.apk"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.7.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=build/r_native_navigation_0.66.apk
              - --app-activity=com.reactnative.MainActivity
              - --app-package=com.reactnative
              - --farm=bb
              - --device=ANDROID_10|ANDROID_11|ANDROID_12
              - --appium-version=1.22
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
              - features/navigation.feature
        concurrency: 25
        concurrency_group: 'bitbar'
        concurrency_method: eager