Files
2026-07-13 13:17:40 +08:00

671 lines
23 KiB
YAML

group: core tests
depends_on:
- forge
- ray-core-build(*)
- ray-dashboard-build
steps:
# builds
- name: corebuild-multipy
label: "wanda: corebuild-py{{array.python}}"
wanda: ci/docker/core.build.wanda.yaml
tags: cibase
array:
python:
- "3.10"
- "3.12"
env:
PYTHON: "{{array.python}}"
BASE_TYPE: "build"
BUILD_VARIANT: "build"
depends_on: oss-ci-base_build-multipy($)
- name: coregpubuild-multipy
label: "wanda: coregpubuild-py{{array.python}}"
wanda: ci/docker/core.build.wanda.yaml
tags: cibase
depends_on: oss-ci-base_gpu-multipy($)
env:
PYTHON: "{{array.python}}"
BASE_TYPE: "gpu"
BUILD_VARIANT: "gpubuild"
RAYCI_IS_GPU_BUILD: "true"
array:
python:
- "3.10"
- name: coregpu-cu130-build-multipy
label: "wanda: coregpu-cu130-build-py{{array.python}}"
wanda: ci/docker/core.build.wanda.yaml
tags: cibase
depends_on: oss-ci-base_cu130-multipy($)
env:
PYTHON: "{{array.python}}"
BASE_TYPE: "cu130"
BUILD_VARIANT: "gpu-cu130-build"
RAYCI_IS_GPU_BUILD: "true"
array:
python:
- "3.10"
- name: minbuild-core
label: "wanda: minbuild-core-py{{array.python}}"
wanda: ci/docker/min.build.wanda.yaml
depends_on: oss-ci-base_test-multipy($)
tags: cibase
array:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
env:
PYTHON_VERSION: "{{array.python}}"
EXTRA_DEPENDENCY: core
- wait: ~
depends_on:
- corebuild-multipy(python=3.10)
# tests
- label: ":ray: core: python tests"
tags:
- core_python
- dashboard
instance_type: large
parallelism: 4
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/_common/tests/... //python/ray/autoscaler/v2/... core
--install-mask all-ray-libraries
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
--python-version 3.10 --build-name corebuild-py3.10
--except-tags custom_setup
--install-mask all-ray-libraries
- label: ":ray: core: python {{array.python}} tests ({{array.worker_id}})"
key: core_python_tests
if: build.pull_request.labels includes "continuous-build" || pipeline.id == "0189e759-8c96-4302-b6b5-b4274406bf89" || pipeline.id == "018f4f1e-1b73-4906-9802-92422e3badaa"
tags:
- core_python
- dashboard
instance_type: large
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/autoscaler/v2/... core
--install-mask all-ray-libraries
--workers 4 --worker-id "{{array.worker_id}}" --parallelism-per-worker 3
--python-version {{array.python}} --build-name corebuild-py{{array.python}}
--except-tags custom_setup
depends_on: corebuild-multipy($)
array:
python: ["3.12"]
worker_id: ["0", "1", "2", "3"]
- label: ":ray: core: ray client tests"
tags:
- ray_client
instance_type: large
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--install-mask all-ray-libraries
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
--python-version 3.10 --build-name corebuild-py3.10
--only-tags ray_client
# Conditionally runs on premerge via the `redis_tests` tag (see
# .buildkite/test.rules.txt) when src/ray/gcs/store_client/ is
# modified. Always runs on postmerge.
- label: ":ray: core: redis tests"
tags:
- redis_tests
- oss
instance_type: large
parallelism: 4
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dag/... //python/ray/autoscaler/v2/... core
--install-mask all-ray-libraries
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
--test-env=TEST_EXTERNAL_REDIS=1
--except-tags custom_setup
--python-version 3.10 --build-name corebuild-py3.10
# REP-64 GCS FT with the embedded RocksDB backend. Mirrors the redis
# tests above but selects rocksdb-mode via TEST_GCS_ROCKSDB=1 (see
# python/ray/tests/conftest.py::_setup_rocksdb_gcs). Conditionally
# runs on premerge via the `rocksdb_tests` tag (see
# .buildkite/test.rules.txt) when src/ray/gcs/store_client/ or the
# rocksdb build config is modified. Always runs on postmerge.
- label: ":ray: core: rocksdb tests"
tags:
- rocksdb_tests
- oss
instance_type: large
parallelism: 4
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dag/... //python/ray/autoscaler/v2/... core
--install-mask all-ray-libraries
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
--test-env=TEST_GCS_ROCKSDB=1
--except-tags custom_setup
--python-version 3.10 --build-name corebuild-py3.10
- label: ":ray: core: memory pressure tests"
tags:
- core_python
- oss
- skip-on-premerge
instance_type: medium
commands:
- cleanup() { ./ci/build/upload_build_info.sh; }; trap cleanup EXIT
- (cd python/ray/dashboard/client && npm ci && npm run build)
- pip install -e python[client]
- bazel test --config=ci --jobs=1 $(./ci/run/bazel_export_options)
--test_tag_filters=mem_pressure -- //python/ray/tests/...
job_env: corebuild-py3.10
- label: ":ray: core: out of disk tests"
tags:
- core_python
- oss
instance_type: small
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--python-version 3.10 --build-name corebuild-py3.10
--only-tags=tmpfs --tmp-filesystem=tmpfs
- label: ":ray: core: out of disk redis tests"
tags:
- redis_tests
- oss
instance_type: small
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--test-env=TEST_EXTERNAL_REDIS=1
--only-tags=tmpfs --tmp-filesystem=tmpfs
--python-version 3.10 --build-name corebuild-py3.10
- label: ":ray: core: out of disk rocksdb tests"
tags:
- rocksdb_tests
- oss
instance_type: small
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--test-env=TEST_GCS_ROCKSDB=1
--only-tags=tmpfs --tmp-filesystem=tmpfs
--python-version 3.10 --build-name corebuild-py3.10
- label: ":ray: core: doc tests"
if: '!(build.pull_request.labels includes "docs-go")'
tags:
- core_python
- doc
instance_type: large
commands:
# doc tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/... //doc/... core
--only-tags doctest
--python-version 3.10 --build-name corebuild-py3.10
--parallelism-per-worker 3
# doc examples
- bazel run //ci/ray_ci:test_in_docker -- //doc/... core
--install-mask all-ray-libraries
--except-tags doctest,post_wheel_build,gpu,multi_gpu,mem_pressure
--parallelism-per-worker 3
--python-version 3.10 --build-name corebuild-py3.10
--skip-ray-installation
# doc memory pressure example
- bazel run //ci/ray_ci:test_in_docker -- //doc/... core
--only-tags mem_pressure
--except-tags gpu
--python-version 3.10 --build-name corebuild-py3.10
--skip-ray-installation
- label: ":ray: core: dask tests"
tags:
- dask
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker --
python/ray/util/dask/... core
--install-mask all-ray-libraries
--python-version 3.12
--build-name datalbuild-py3.12
depends_on:
- datalbuild-multipy(python=3.12)
- forge
- label: ":ray: core: modin tests"
tags:
- skip-on-premerge
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker --
python/ray/tests/modin/... core
--python-version 3.10
--build-name datalbuild-py3.10
depends_on:
- datalbuild-multipy(python=3.10)
- forge
- label: ":ray: core: dashboard tests"
tags:
- core_python
- dashboard
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker -- python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version 3.10 --build-name corebuild-py3.10
# ui tests
- docker run -i --rm --volume /tmp/artifacts:/artifact-mount --shm-size=2.5gb
"$${RAYCI_WORK_REPO}":"$${RAYCI_BUILD_ID}"-corebuild-py3.10 /bin/bash -iecuo pipefail
"./python/ray/dashboard/tests/run_ui_tests.sh"
- label: ":ray: core: debug tests"
tags:
- core_python
- skip-on-premerge
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--install-mask all-ray-libraries
--build-type debug
--parallelism-per-worker 3
--python-version 3.10 --build-name corebuild-py3.10
--only-tags debug_tests
--except-tags kubernetes,manual
- label: ":ray: core: asan tests"
tags:
- core_python
- skip-on-premerge
instance_type: large
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--install-mask all-ray-libraries
--build-type asan
--parallelism-per-worker 2
--python-version 3.10 --build-name corebuild-py3.10
--only-tags asan_tests
--except-tags kubernetes,manual
- label: ":ray: core: wheel tests"
key: core-wheel-tests
tags: linux_wheels
instance_type: large
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //doc/... core
--install-mask all-ray-libraries
--build-type wheel
--parallelism-per-worker 3
--python-version 3.10 --build-name corebuild-py3.10
--only-tags post_wheel_build
--test-env=RAY_CI_POST_WHEEL_TESTS=True
depends_on:
- manylinux-x86_64
- corebuild-multipy(python=3.10)
- forge
- ray-wheel-build(python=3.10)
# Premerge runs only the lowest and highest supported Python versions. The
# intermediate versions are covered by the postmerge-only step below.
- label: ":ray: core: minimal tests {{array.python}}"
key: core_minimal_tests
tags:
- core_python
- dashboard
- oss
- min_build
instance_type: medium
commands:
# validate minimal installation
- python ./ci/env/check_minimal_install.py
# core tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--test-env=EXPECTED_PYTHON_VERSION={{array.python}}
--only-tags minimal
--except-tags basic_test,manual,cgroup
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--test-env=EXPECTED_PYTHON_VERSION={{array.python}}
--only-tags minimal
--except-tags no_basic_test,manual
--skip-ray-installation
# core redis tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--test-env=TEST_EXTERNAL_REDIS=1
--test-env=EXPECTED_PYTHON_VERSION={{array.python}}
--only-tags minimal
--except-tags no_basic_test,manual
--skip-ray-installation
# serve tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... serve
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--only-tags minimal
--skip-ray-installation
depends_on:
- minbuild-core($)
array:
python:
- "3.10"
- "3.14"
# Intermediate Python versions only run on postmerge (skipped on premerge).
- label: ":ray: core: minimal tests {{array.python}}"
key: core_minimal_tests_postmerge
tags:
- python
- dashboard
- oss
- min_build
- skip-on-premerge
instance_type: medium
commands:
# validate minimal installation
- python ./ci/env/check_minimal_install.py
# core tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--test-env=EXPECTED_PYTHON_VERSION={{array.python}}
--only-tags minimal
--except-tags basic_test,manual,cgroup
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--test-env=EXPECTED_PYTHON_VERSION={{array.python}}
--only-tags minimal
--except-tags no_basic_test,manual
--skip-ray-installation
# core redis tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--test-env=TEST_EXTERNAL_REDIS=1
--test-env=EXPECTED_PYTHON_VERSION={{array.python}}
--only-tags minimal
--except-tags no_basic_test,manual
--skip-ray-installation
# serve tests
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... serve
--parallelism-per-worker 3
--python-version {{array.python}}
--build-name minbuild-core-py{{array.python}}
--test-env=RAY_MINIMAL=1
--only-tags minimal
--skip-ray-installation
depends_on:
- minbuild-core($)
array:
python:
- "3.11"
- "3.12"
- "3.13"
- label: ":ray: core: cgroup tests"
tags:
- core_cpp
- core_python
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker -- //:all
//python/ray/tests/resource_isolation:test_resource_isolation_integration
//python/ray/tests/resource_isolation:test_resource_isolation_config core
--privileged --cache-test-results
--python-version 3.10 --build-name corebuild-py3.10
- bazel run //ci/ray_ci:test_in_docker -- //:all //src/ray/common/cgroup2/tests/... core
--build-type clang --cache-test-results
--python-version 3.10 --build-name corebuild-py3.10
- docker run --privileged -i --rm --volume /tmp/artifacts:/artifact-mount --shm-size=2.5gb
"$${RAYCI_WORK_REPO}":"$${RAYCI_BUILD_ID}"-corebuild-py3.10 /bin/bash
"./src/ray/common/cgroup2/integration_tests/sysfs_cgroup_driver_integration_test_entrypoint.sh"
- label: ":ray: core: cpp tests"
tags: core_cpp
instance_type: medium
commands:
- RAYCI_DISABLE_TEST_DB=1 bazel run //ci/ray_ci:test_in_docker --
//:all //src/... core --except-tags=cgroup --build-type clang
--python-version 3.10 --build-name corebuild-py3.10
--cache-test-results --parallelism-per-worker 2
# block on premerge and microcheck
- block: "run cpp sanitizer tests"
if: build.env("BUILDKITE_PIPELINE_ID") == "0189942e-0876-4b8f-80a4-617f988ec59b" || build.env("BUILDKITE_PIPELINE_ID") == "018f4f1e-1b73-4906-9802-92422e3badaa"
key: block-core-cpp-sanitizer-tests
depends_on: []
- label: ":ray: core: cpp asan tests"
tags: core_cpp
instance_type: medium
commands:
- RAYCI_DISABLE_TEST_DB=1 bazel run //ci/ray_ci:test_in_docker -- //:all //src/... core --except-tags=cgroup
--build-type asan-clang --cache-test-results --parallelism-per-worker 2
--python-version 3.10 --build-name corebuild-py3.10
depends_on:
- block-core-cpp-sanitizer-tests
- corebuild-multipy(python=3.10)
- label: ":ray: core: cpp ubsan tests"
tags: core_cpp
instance_type: large
commands:
- RAYCI_DISABLE_TEST_DB=1 bazel run //ci/ray_ci:test_in_docker -- //:all //src/... core
--python-version 3.10 --build-name corebuild-py3.10
--build-type ubsan --except-tags no_ubsan,cgroup
--cache-test-results --parallelism-per-worker 2
depends_on:
- block-core-cpp-sanitizer-tests
- corebuild-multipy(python=3.10)
- label: ":ray: core: cpp tsan tests"
tags: core_cpp
instance_type: medium
commands:
- RAYCI_DISABLE_TEST_DB=1 bazel run //ci/ray_ci:test_in_docker -- //:all //src/... core
--python-version 3.10 --build-name corebuild-py3.10
--build-type tsan-clang --except-tags no_tsan,cgroup
--cache-test-results --parallelism-per-worker 2
depends_on:
- block-core-cpp-sanitizer-tests
- corebuild-multipy(python=3.10)
- block: "run dag tests"
key: block-dag-tests
depends_on: []
- label: ":ray: core: dag tests"
key: core_dag_tests
tags:
- core_python
- cgraphs_direct_transport
instance_type: large
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/dag/... core
--install-mask all-ray-libraries
--python-version 3.10 --build-name corebuild-py3.10
--only-tags ray_dag_tests,compiled_graphs
--except-tags custom_setup
depends_on:
- block-dag-tests
- corebuild-multipy(python=3.10)
- label: ":ray: core: flaky tests"
key: core_flaky_tests
tags:
- core_python
- flaky
- skip-on-premerge
instance_type: large
soft_fail: true
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/... //doc/... core
--python-version 3.10 --build-name corebuild-py3.10
--install-mask all-ray-libraries
--run-flaky-tests
--except-tags multi_gpu,cgroup
depends_on:
- corebuild-multipy(python=3.10)
- label: ":ray: core: flaky gpu tests"
key: core_flaky_gpu_tests
tags:
- gpu
- core_python
- skip-on-premerge
instance_type: gpu-large
soft_fail: true
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/... //python/ray/dag/... //doc/... core
--install-mask all-ray-libraries
--run-flaky-tests
--gpus 4
--build-name coregpubuild-py3.10
--python-version 3.10
--only-tags multi_gpu
depends_on: coregpubuild-multipy(python=3.10)
- label: ":ray: core: cpp worker tests"
tags:
- core_cpp
- cpp
- oss
instance_type: medium
commands:
- if [[ "$${BUILDKITE_CACHE_READONLY:-}" == "true" ]]; then
echo "build --remote_upload_local_results=false" >> ~/.bazelrc;
fi
# cpp worker tests has one that tests cross-language with Java.
- RAY_INSTALL_JAVA=1 ci/ci.sh build
- ci/ci.sh test_cpp
depends_on: oss-ci-base_build-multipy(python=3.10)
job_env: oss-ci-base_build-py3.10
- label: ":ray: core: java worker tests"
tags:
- java
- core_python
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--python-version 3.10 --build-name corebuild-py3.10
--build-type java
--only-tags needs_java
depends_on: corebuild-multipy(python=3.10)
- label: ":ray: core: HA integration tests"
tags:
- core_python
- docker
instance_type: large
commands:
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version 3.10
--platform cpu --canonical-tag ha_integration
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core --only-tags ha_integration
--python-version 3.10 --build-name corebuild-py3.10
depends_on:
- manylinux-x86_64
- forge
- raycpubase(python=3.10)
- corebuild-multipy(python=3.10)
- label: ":ray: core: runtime env container tests"
tags:
- docker
- runtime_env_container
- oss
instance_type: medium
commands:
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version 3.10
--platform cpu --canonical-tag test_container
- docker build --progress=plain --build-arg BASE_IMAGE="rayproject/ray:test_container"
-t rayproject/ray:runtime_env_container -f ci/docker/runtime_env_container/Dockerfile .
# Disable test DB, these tests will never succeed if run in the flaky step.
- RAYCI_DISABLE_TEST_DB=1 bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--python-version 3.10 --build-name corebuild-py3.10
--install-mask all-ray-libraries
--only-tags runtime_env_container
depends_on:
- manylinux-x86_64
- forge
- raycpubase(python=3.10)
- corebuild-multipy(python=3.10)
- label: ":core: core: spark-on-ray tests"
# NOTE: The Spark-on-Ray tests intentionally aren't triggered by the `java` tag to
# avoid running them for every C++ code change.
tags:
- spark_on_ray
instance_type: medium
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
--build-type debug
--test-env=RAY_ON_SPARK_BACKGROUND_JOB_STARTUP_WAIT=1
--test-env=RAY_ON_SPARK_RAY_WORKER_NODE_STARTUP_INTERVAL=5
--only-tags spark_on_ray
--python-version 3.10 --build-name corebuild-py3.10
depends_on:
- corebuild-multipy(python=3.10)
# block gpu tests on premerge and microcheck
- block: "run multi gpu tests"
if: build.env("BUILDKITE_PIPELINE_ID") == "0189942e-0876-4b8f-80a4-617f988ec59b" || build.env("BUILDKITE_PIPELINE_ID") == "018f4f1e-1b73-4906-9802-92422e3badaa"
key: block-core-gpu-tests
depends_on: []
- label: ":ray: core: multi gpu tests"
key: core-multi-gpu-tests
tags:
- cgraphs_direct_transport
- gpu
instance_type: gpu-large
# we're running some cgraph doc tests here as well since they need gpus
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dag/... //doc/... core
--gpus 4
--build-name coregpubuild-py3.10
--python-version 3.10
--only-tags multi_gpu
--install-mask all-ray-libraries
depends_on:
- block-core-gpu-tests
- coregpubuild-multipy(python=3.10)
- label: ":ray: core: multi gpu cu130 tests"
key: core-multi-gpu-cu130-tests
tags:
- cgraphs_direct_transport
- gpu
instance_type: gpu-large
commands:
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dag/... //doc/... core
--gpus 4
--build-name coregpu-cu130-build-py3.10
--python-version 3.10
--only-tags multi_gpu
--install-mask all-ray-libraries
depends_on:
- block-core-gpu-tests
- coregpu-cu130-build-multipy(python=3.10)