bugsnag/bugsnag-js

View on GitHub
.buildkite/pipeline.yml

Summary

Maintainability
Test Coverage
steps:

  #
  # License audit
  #
  - label: ":copyright: License Audit"
    timeout_in_minutes: 20
    agents:
      queue: macos-14
    command: scripts/license_finder.sh

  #
  # Java 11 Android builder base - used by React Native and React Native CLI (< 0.73)
  #
  - label: ":docker: Build Java 11 Android Builder base image"
    key: "android-builder-base-java-11"
    timeout_in_minutes: 30
    plugins:
      - docker-compose#v4.12.0:
          build: android-builder-base-java-11
          image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
          cache-from:  android-builder-base-java-11:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:android-builder-base-java-11
      - docker-compose#v4.12.0:
          push: android-builder-base-java-11:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:android-builder-base-java-11
    retry:
      automatic:
        - exit_status: "*"
          limit: 1

  #
  # Publish/package notifier
  #
  - label: ":docker: Prepare package.json"
    key: "package-js"
    timeout_in_minutes: 3
    plugins:
      - docker-compose#v4.12.0:
          run: minimal-packager
    artifact_paths: min_packages.tar
  - label: ":docker: Build and publish JS packages"
    key: "publish-js"
    timeout_in_minutes: 30
    agents:
      queue: "macos-14"
    env:
      NODE_VERSION: "18"
      PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
    command:
      - "bundle install"
      - "node scripts/publish.js $$PUBLISH_URL"
    retry:
      automatic:
        - exit_status: "*"
          limit: 1

  - label: ":aws-lambda: AWS Lambda tests"
    timeout_in_minutes: 35
    agents:
      queue: "opensource-mac-cocoa-10.15"
    commands:
      # force the NPM registry as the default on CI is artifactory, which can't
      # currently install from our lockfile
      - npm ci --registry https://registry.npmjs.org
      - cd test/aws-lambda
      - bundle install
      - bundle exec maze-runner

  #
  # Core tests and checks
  #
  - label: ":docker: Build CI image"
    key: "ci-image"
    depends_on: "package-js"
    timeout_in_minutes: 20
    plugins:
      - artifacts#v1.5.0:
          download: min_packages.tar
      - docker-compose#v4.12.0:
          build:
            - ci
          image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
          cache-from:
            - ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-base-${BRANCH_NAME}
            - ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-base
      - docker-compose#v4.12.0:
          push:
            - ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-base-${BRANCH_NAME}
            - ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:ci-base
    retry:
      automatic:
        - exit_status: "*"
          limit: 1

  - label: "Lint"
    depends_on: "ci-image"
    timeout_in_minutes: 10
    plugins:
      docker-compose#v4.12.0:
        run: ci
    command: "npm run test:lint"

  - label: "Unit tests"
    depends_on: "ci-image"
    timeout_in_minutes: 10
    plugins:
      docker-compose#v4.12.0:
        run: ci
    command: "npm run test:unit"

  - label: "Type checks/tests"
    depends_on: "ci-image"
    timeout_in_minutes: 10
    plugins:
      docker-compose#v4.12.0:
        run: ci
    command: "npm run test:types"

  - 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/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:"
    commands:
      - 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/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"
    commands:
      - 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/basic/react-native-ios-pipeline.yml

  #
  # Conditionally trigger full pipeline
  #
  - label: 'Conditionally trigger full set of tests'
    timeout_in_minutes: 30
    command: sh -c .buildkite/pipeline_trigger.sh