bugsnag/bugsnag-js

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

Summary

Maintainability
Test Coverage
steps:

  - group: "React Native (iOS) Tests"
    steps:

      #
      # Test fixtures
      #
      - label: ":ios: Build RN 0.66 ipa"
        key: "rn-0-66-ipa"
        timeout_in_minutes: 60
        agents:
          queue: "macos-12-arm"
        env:
          REACT_NATIVE_VERSION: rn0.66
          LANG: "en_US.UTF-8"
          DEVELOPER_DIR: "/Applications/Xcode14.app"
        artifact_paths: build/rn0.66.ipa
        commands:
          - npm run test:build-react-native-ios
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":ios: Build RN 0.67 ipa"
        key: "rn-0-67-ipa"
        timeout_in_minutes: 60
        agents:
          queue: "macos-12-arm"
        env:
          REACT_NATIVE_VERSION: rn0.67
          LANG: "en_US.UTF-8"
          DEVELOPER_DIR: "/Applications/Xcode14.app"
        artifact_paths: build/rn0.67.ipa
        commands:
          - npm run test:build-react-native-ios
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":ios: Build RN 0.68 Hermes ipa"
        key: "rn-0-68-hermes-ipa"
        timeout_in_minutes: 60
        agents:
          queue: "macos-12-arm"
        env:
          REACT_NATIVE_VERSION: rn0.68-hermes
          LANG: "en_US.UTF-8"
          DEVELOPER_DIR: "/Applications/Xcode14.app"
        artifact_paths: build/rn0.68-hermes.ipa
        commands:
          - npm run test:build-react-native-ios
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      - label: ":ios: Build RN 0.69 ipa"
        key: "rn-0-69-ipa"
        timeout_in_minutes: 60
        agents:
          queue: "macos-12-arm"
        env:
          REACT_NATIVE_VERSION: rn0.69
          LANG: "en_US.UTF-8"
          DEVELOPER_DIR: "/Applications/Xcode14.app"
        artifact_paths: build/rn0.69.ipa
        commands:
          - npm run test:build-react-native-ios
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

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

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

      - label: ":ios: Build react-navigation 0.69 ipa"
        key: "react-navigation-0-69-ipa"
        timeout_in_minutes: 60
        agents:
          queue: "macos-12-arm"
        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/Xcode14.app"
        artifact_paths: build/r_navigation_0.69.ipa
        commands:
          - npm run test:build-react-native-ios
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      # 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: "macos-12-arm"
        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/Xcode14.app"
        artifact_paths: build/r_native_navigation_0.66.ipa
        commands:
          - npm run test:build-react-native-ios
        retry:
          automatic:
            - exit_status: "*"
              limit: 1

      #
      # End-to-end tests
      #
      - label: ":bitbar: :ios: RN 0.66 iOS 16 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
            service-ports: true
            use-aliases: true
            command:
              - --app=build/rn0.66.ipa
              - --farm=bb
              - --device=IOS_15|IOS_16
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
        concurrency: 25
        concurrency_group: "bitbar"
        concurrency_method: eager

      - label: ":bitbar: :ios: RN 0.67 iOS 16 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
            service-ports: true
            use-aliases: true
            command:
              - --app=build/rn0.67.ipa
              - --farm=bb
              - --device=IOS_15|IOS_16
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          HERMES: "true"
        concurrency: 5
        concurrency_group: "browserstack-app"
        concurrency_method: eager

      - label: ":bitbar: :ios: RN 0.69 iOS 16 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
            service-ports: true
            use-aliases: true
            command:
              - --app=build/rn0.69.ipa
              - --farm=bb
              - --device=IOS_15|IOS_16
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          HERMES: "true"
        concurrency: 5
        concurrency_group: "browserstack-app"
        concurrency_method: eager
      #
      - label: ":bitbar: :ios: RN 0.68 (hermes) iOS 16 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
            service-ports: true
            use-aliases: true
            command:
              - --app=build/rn0.68-hermes.ipa
              - --farm=bb
              - --device=IOS_15|IOS_16
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          SKIP_NAVIGATION_SCENARIOS: "true"
          HERMES: "true"
        concurrency: 5
        concurrency_group: "browserstack-app"
        concurrency_method: eager

      - label: ":bitbar: :mac: RN {{matrix}} iOS 16 (Old Arch) end-to-end tests"
        depends_on: "build-react-native-ios-fixture-old-arch-full"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "test/react-native/features/fixtures/generated/old-arch/{{matrix}}/output/reactnative.ipa"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.12.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=/app/features/fixtures/generated/old-arch/{{matrix}}/output/reactnative.ipa
              - --farm=bb
              - --device=IOS_16
              - --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: :mac: RN {{matrix}} iOS 16 (New Arch) end-to-end tests"
        depends_on: "build-react-native-ios-fixture-new-arch-full"
        timeout_in_minutes: 60
        plugins:
          artifacts#v1.9.0:
            download: "test/react-native/features/fixtures/generated/new-arch/{{matrix}}/output/reactnative.ipa"
            upload: ./test/react-native/maze_output/**/*
          docker-compose#v4.12.0:
            pull: react-native-maze-runner
            run: react-native-maze-runner
            service-ports: true
            command:
              - --app=/app/features/fixtures/generated/new-arch/{{matrix}}/output/reactnative.ipa
              - --farm=bb
              - --device=IOS_16
              - --a11y-locator
              - --fail-fast
              - --no-tunnel
              - --aws-public-ip
        env:
          RCT_NEW_ARCH_ENABLED: "1"
          SKIP_NAVIGATION_SCENARIOS: "true"
          RN_VERSION: "{{matrix}}"
        retry:
          manual:
            permit_on_passed: true
        concurrency: 25
        concurrency_group: "bitbar"
        concurrency_method: eager
        matrix:
          - "0.71"
          - "0.72"
          - "0.73"

      - label: ":browserstack: :ios: react-navigation 0.69 iOS 16 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_16
              - --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 16 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_16
              - --a11y-locator
              - --fail-fast
              - features/navigation.feature
        concurrency: 5
        concurrency_group: "browserstack-app"
        concurrency_method: eager