.buildkite/pipeline.yml
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