ray/.buildkite/pipeline.yml

392 lines
19 KiB
YAML
Raw Normal View History

- label: ":ferris_wheel: Wheels and Jars"
conditions:
[
"RAY_CI_LINUX_WHEELS_AFFECTED",
"RAY_CI_JAVA_AFFECTED",
"RAY_CI_STREAMING_JAVA_AFFECTED",
]
commands:
# Build the wheels and jars
- LINUX_WHEELS=1 LINUX_JARS=1 ./ci/travis/ci.sh build
- bash ./java/build-jar-multiplatform.sh linux
# Upload the wheels and jars
# We don't want to push on PRs, in fact, the copy_files will fail because unauthenticated.
- if [ "$BUILDKITE_PULL_REQUEST" != "false" ]; then exit 0; fi
- pip install -q docker aws_requests_auth boto3
# Upload to branch directory.
- python .buildkite/copy_files.py --destination branch_wheels --path ./.whl
- python .buildkite/copy_files.py --destination branch_jars --path ./.jar/linux
# Upload to latest directory.
- if [ "$BUILDKITE_BRANCH" == "master" ]; then python .buildkite/copy_files.py --destination wheels --path ./.whl; fi
- if [ "$BUILDKITE_BRANCH" == "master" ]; then python .buildkite/copy_files.py --destination jars --path ./.jar/linux; fi
- label: ":ferris_wheel: Post-wheel tests"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=post_wheel_build
--test_env=CONDA_EXE
--test_env=CONDA_PYTHON_EXE
--test_env=CONDA_SHLVL
--test_env=CONDA_PREFIX
--test_env=CONDA_DEFAULT_ENV
--test_env=CI
--test_env=RAY_CI_POST_WHEEL_TESTS=True
python/ray/tests/... python/ray/serve/... python/ray/tune/... rllib/... doc/...
- label: ":ferris_wheel: Debug Wheels"
conditions:
[
"RAY_CI_LINUX_WHEELS_AFFECTED",
"RAY_CI_JAVA_AFFECTED",
"RAY_CI_STREAMING_JAVA_AFFECTED",
]
commands:
# Build the debug wheels
- RAY_DEBUG_BUILD=debug LINUX_WHEELS=1 ./ci/travis/ci.sh build
# Upload the wheels.
# We don't want to push on PRs, in fact, the copy_files will fail because unauthenticated.
- if [ "$BUILDKITE_PULL_REQUEST" != "false" ]; then exit 0; fi
- pip install -q docker aws_requests_auth boto3
# Upload to branch directory.
- python .buildkite/copy_files.py --destination branch_wheels --path ./.whl
# Upload to latest directory.
- if [ "$BUILDKITE_BRANCH" == "master" ]; then python .buildkite/copy_files.py --destination wheels --path ./.whl; fi
# Not working now.
# - label: ":ferris_wheel: ASAN Wheels"
# conditions:
# [
# "RAY_CI_LINUX_WHEELS_AFFECTED",
# "RAY_CI_JAVA_AFFECTED",
# "RAY_CI_STREAMING_JAVA_AFFECTED",
# ]
# commands:
# # Build the asan wheels
# - RAY_DEBUG_BUILD=asan LINUX_WHEELS=1 ./ci/travis/ci.sh build
# # Upload the wheels.
# # We don't want to push on PRs, in fact, the copy_files will fail because unauthenticated.
# - if [ "$BUILDKITE_PULL_REQUEST" != "false" ]; then exit 0; fi
# - pip install -q docker aws_requests_auth boto3
# # Upload to branch directory.
# - python .buildkite/copy_files.py --destination branch_wheels --path ./.whl
# # Upload to latest directory.
# - if [ "$BUILDKITE_BRANCH" == "master" ]; then python .buildkite/copy_files.py --destination wheels --path ./.whl; fi
- label: ":docker: Build Images: py36 (1/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py36 --device-types cpu cu101 cu102 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py36 (2/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py36 --device-types cu110 cu111 cu112 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py37 (1/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py37 --device-types cpu cu101 cu102 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py37 (2/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py37 --device-types cu110 cu111 cu112 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py38 (1/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py38 --device-types cpu cu101 cu102 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py38 (2/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py38 --device-types cu110 cu111 cu112 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py39 (1/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py39 --device-types cpu cu101 cu102 --build-type BUILDKITE --build-base
- label: ":docker: Build Images: py39 (2/2)"
conditions: ["RAY_CI_LINUX_WHEELS_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install -q docker aws_requests_auth boto3
- if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then python .buildkite/copy_files.py --destination docker_login; fi
- python ./ci/travis/build-docker-images.py --py-versions py39 --device-types cu110 cu111 cu112 --build-type BUILDKITE --build-base
- label: ":book: Lint"
commands:
- export LINT=1
- ./ci/travis/install-dependencies.sh
- ./ci/travis/ci.sh lint
- ./ci/travis/ci.sh build
- label: ":java: Java"
conditions: ["RAY_CI_JAVA_AFFECTED"]
commands:
- ./java/test.sh
- label: ":java: Streaming"
conditions:
["RAY_CI_STREAMING_PYTHON_AFFECTED", "RAY_CI_STREAMING_JAVA_AFFECTED", "RAY_CI_PYTHON_AFFECTED"]
commands:
- bazel test --config=ci $(./scripts/bazel_export_options)
//streaming:all
- bash streaming/src/test/run_streaming_queue_test.sh
- label: ":cpp: Worker"
conditions: [ "RAY_CI_CPP_AFFECTED" ]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- ./ci/travis/ci.sh test_cpp
- label: ":cpp: Tests"
conditions: [ "RAY_CI_CORE_CPP_AFFECTED" ]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci --config=llvm $(./scripts/bazel_export_options)
--build_tests_only
--test_tag_filters=-flaky
-- //:all -rllib/... -core_worker_test
- label: ":cpp: Tests (ASAN)"
conditions: [ "RAY_CI_CORE_CPP_AFFECTED" ]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci --config=asan-clang $(./scripts/bazel_export_options)
--build_tests_only
--jobs=2
--test_tag_filters=-flaky
-- //:all -//:core_worker_test
- label: ":cpp: Tests (UBSAN)"
conditions: [ "RAY_CI_CORE_CPP_AFFECTED" ]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci --config=ubsan $(./scripts/bazel_export_options)
--build_tests_only
--jobs=2
--test_tag_filters=-flaky
-- //:all -//:core_worker_test -//:logging_test
2021-08-24 00:57:32 -07:00
- label: ":cpp: Tests (TSAN)"
conditions: [ "RAY_CI_CORE_CPP_AFFECTED" ]
2021-08-24 00:57:32 -07:00
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci --config=tsan-clang $(./scripts/bazel_export_options)
2021-08-24 00:57:32 -07:00
--build_tests_only
--jobs=2
--test_tag_filters=-flaky
-- //:all -//:core_worker_test -//:event_test -//:gcs_actor_manager_test
-//:gcs_placement_group_manager_test -//:gcs_placement_group_scheduler_test
-//:gcs_server_rpc_test -//:gcs_server_test
2021-08-24 00:57:32 -07:00
-//:metric_exporter_client_test -//:stats_test -//:worker_pool_test
- label: ":serverless: Dashboard + Serve Tests"
conditions:
[
"RAY_CI_SERVE_AFFECTED",
"RAY_CI_DASHBOARD_AFFECTED",
"RAY_CI_PYTHON_AFFECTED",
]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- TORCH_VERSION=1.6 ./ci/travis/install-dependencies.sh
- ./dashboard/tests/run_ui_tests.sh
- bazel test --config=ci $(./scripts/bazel_export_options) python/ray/dashboard/...
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-post_wheel_build
python/ray/serve/...
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=team:serve
release/...
- label: ":python: Minimal install"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- ./ci/travis/install-minimal.sh
- ./ci/travis/env_info.sh
- python ./ci/travis/check_minimal_install.py
- bazel test --test_output=streamed --config=ci $(./scripts/bazel_export_options)
python/ray/tests/test_basic
- bazel test --test_output=streamed --config=ci $(./scripts/bazel_export_options)
python/ray/tests/test_basic_2
- bazel test --test_output=streamed --config=ci $(./scripts/bazel_export_options)
python/ray/tests/test_basic_3
- bazel test --test_output=streamed --config=ci --test_env=RAY_MINIMAL=1 $(./scripts/bazel_export_options)
python/ray/tests/test_output
- bazel test --test_output=streamed --config=ci --test_env=RAY_MINIMAL=1 $(./scripts/bazel_export_options)
python/ray/tests/test_runtime_env_ray_minimal
- bazel test --test_output=streamed --config=ci --test_env=RAY_MINIMAL=1 $(./scripts/bazel_export_options)
python/ray/tests/test_serve_ray_minimal
- label: ":python: (Small & Large)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,-medium_size_python_tests_a_to_j,-medium_size_python_tests_k_to_z,-client_tests,-flaky,-post_wheel_build,-worker-container
--test_env=CONDA_EXE
--test_env=CONDA_PYTHON_EXE
--test_env=CONDA_SHLVL
--test_env=CONDA_PREFIX
--test_env=CONDA_DEFAULT_ENV
python/ray/tests/...
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,client_tests,-flaky
--test_env=RAY_CLIENT_MODE=1 --test_env=RAY_PROFILING=1
python/ray/tests/...
- label: ":python: (Medium A-J)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,medium_size_python_tests_a_to_j,-flaky
python/ray/tests/...
- label: ":python: (Medium K-Z)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,medium_size_python_tests_k_to_z,-flaky
python/ray/tests/...
- label: ":python: Debug Test"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- pip uninstall -y ray
- RAY_DEBUG_BUILD=debug ./ci/travis/ci.sh build
- bazel test --config=ci-debug $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,debug_tests,-flaky
python/ray/tests/...
- label: ":python: (ASAN tests)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- RLLIB_TESTING=1 ./ci/travis/install-dependencies.sh
- bazel test --config=ci --config=asan $(./scripts/bazel_export_options)
--config=asan-buildkite
--test_tag_filters=-kubernetes,asan_tests,-flaky
--test_env=CONDA_EXE
--test_env=CONDA_PYTHON_EXE
--test_env=CONDA_SHLVL
--test_env=CONDA_PREFIX
--test_env=CONDA_DEFAULT_ENV
python/ray/tests/...
- label: ":python: (Privileged test)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- LINUX_WHEELS=1 ./ci/travis/ci.sh build
- pip install docker
# We build image ray-worker-container:nightly-py36-cpu which have installed podman,but not push it.
# And we save this image to a tarball, so that we can load it to podman image storage in the
# nested-container which run tests. And in this nested-container, Raylet will start ray worker
# process in double-nested-container.
- python ./ci/travis/build-docker-images.py --py-versions py36 --device-types cpu --build-type BUILDKITE --only-build-worker-container
- mkdir /ray-mount/containers
- docker save -o /ray-mount/containers/images.tar rayproject/ray-worker-container:nightly-py36-cpu
- docker run --rm --privileged -v /ray/containers:/var/lib/containers -v /ray:/ray --entrypoint /bin/bash
rayproject/ray-worker-container:nightly-py36-cpu /ray/ci/travis/test-worker-in-container.sh
- label: ":redis: HA GCS (Dashboard + Serve Tests)"
conditions:
[
"RAY_CI_SERVE_AFFECTED",
"RAY_CI_DASHBOARD_AFFECTED",
"RAY_CI_PYTHON_AFFECTED",
]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- TORCH_VERSION=1.6 ./ci/travis/install-dependencies.sh
- ./dashboard/tests/run_ui_tests.sh
- bazel test --config=ci $(./scripts/bazel_export_options) --test_env=RAY_gcs_grpc_based_pubsub=1
--test_env=RAY_gcs_storage=memory -- //python/ray/dashboard/... -//python/ray/dashboard:test_dashboard
-//python/ray/dashboard:test_actor
-//python/ray/dashboard:test_job_manager
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-post_wheel_build
--test_env=RAY_gcs_grpc_based_pubsub=1 --test_env=RAY_gcs_storage=memory
-- python/ray/serve/... -//python/ray/serve:test_cli -//python/ray/serve:test_standalone
# Re-enable after fixing.
#- bazel test --config=ci $(./scripts/bazel_export_options)
# --test_tag_filters=team:serve
# --test_env=RAY_gcs_grpc_based_pubsub=1 --test_env=RAY_gcs_storage=memory
# release/...
- label: ":redis: HA GCS (Small & Large)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,-medium_size_python_tests_a_to_j,-medium_size_python_tests_k_to_z,-client_tests,-flaky,-post_wheel_build,-worker-container
--test_env=CONDA_EXE
--test_env=CONDA_PYTHON_EXE
--test_env=CONDA_SHLVL
--test_env=CONDA_PREFIX
--test_env=CONDA_DEFAULT_ENV
--test_env=RAY_gcs_grpc_based_pubsub=1
-- //python/ray/tests/...
-//python/ray/tests:test_failure_2
-//python/ray/tests:test_job
-//python/ray/tests:test_autoscaler_drain_node_api
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,client_tests,-flaky
--test_env=RAY_CLIENT_MODE=1 --test_env=RAY_PROFILING=1
--test_env=RAY_gcs_grpc_based_pubsub=1 --test_env=RAY_gcs_storage=memory
-- //python/ray/tests/...
- label: ":redis: HA GCS (Medium A-J)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,medium_size_python_tests_a_to_j,-flaky
--test_env=RAY_gcs_grpc_based_pubsub=1 --test_env=RAY_gcs_storage=memory
-- //python/ray/tests/...
-//python/ray/tests:test_client_multi -//python/ray/tests:test_component_failures_3
-//python/ray/tests:test_healthcheck -//python/ray/tests:test_gcs_fault_tolerance
-//python/ray/tests:test_client -//python/ray/tests:test_client_reconnect
- label: ":redis: HA GCS (Medium K-Z)"
conditions: ["RAY_CI_PYTHON_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
- bazel test --config=ci $(./scripts/bazel_export_options)
--test_tag_filters=-kubernetes,medium_size_python_tests_k_to_z,-flaky
--test_env=RAY_gcs_grpc_based_pubsub=1 --test_env=RAY_gcs_storage=memory
-- //python/ray/tests/...
-//python/ray/tests:test_multinode_failures_2 -//python/ray/tests:test_ray_debugger
-//python/ray/tests:test_placement_group_2 -//python/ray/tests:test_placement_group_3
-//python/ray/tests:test_multi_node -//python/ray/tests:test_multi_node_3
2021-06-16 03:50:21 +02:00
- label: ":octopus: Tune soft imports test"
conditions: ["RAY_CI_TUNE_AFFECTED"]
commands:
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi }; trap cleanup EXIT
# no TUNE_TESTING=1 on purpose
- ./ci/travis/install-dependencies.sh
- bazel test --config=ci $(./scripts/bazel_export_options) --build_tests_only --test_tag_filters=soft_imports python/ray/tune/...