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

1070 lines
23 KiB
Python

load("@rules_python//python:defs.bzl", "py_binary", "py_library", "py_test")
load("//bazel:ci_require.bzl", bk_require = "ci_require")
exports_files(
[
"aws2gce_iam.json",
"azure_docker_login.sh",
],
visibility = ["//ci/ray_ci/automation:__pkg__"],
)
_requirements_py310_args = [
"$(rootpath :requirements_py310.in)",
"$(rootpath :requirements_py310.txt)",
"//release:requirements_py310.update",
"--no-upgrade",
]
_requirements_py310_data = [
":requirements-doc.txt",
":requirements_py310.in",
":requirements_py310.txt",
]
_requirements_py310_deps = [
"@pypi__click//:lib",
"@pypi__colorama//:lib",
"@pypi__pep517//:lib",
"@pypi__pip//:lib",
"@pypi__pip_tools//:lib",
"@pypi__setuptools//:lib",
"@pypi__tomli//:lib",
]
py_binary(
name = "requirements_py310.update",
srcs = ["@rules_python//python/pip_install:pip_compile.py"],
args = _requirements_py310_args,
data = _requirements_py310_data,
exec_compatible_with = ["//bazel:py310"],
main = "@rules_python//python/pip_install:pip_compile.py",
tags = ["team:ci"],
visibility = ["//visibility:private"],
deps = _requirements_py310_deps,
)
py_test(
name = "requirements_py310_test",
timeout = "short",
srcs = ["@rules_python//python/pip_install:pip_compile.py"],
args = _requirements_py310_args,
data = _requirements_py310_data,
exec_compatible_with = ["//bazel:py310"],
main = "@rules_python//python/pip_install:pip_compile.py",
tags = ["team:ci"],
visibility = ["//visibility:private"],
deps = _requirements_py310_deps,
)
test_srcs = glob(["**/*.py"])
####
# SERVE smoke tests
####
py_test(
name = "serve_failure_smoke_test",
size = "medium",
srcs = test_srcs,
env = {
"RAY_UNIT_TEST": "1",
},
main = "serve_failure.py",
tags = [
"exclusive",
"team:serve",
],
deps = [
"//:ray_lib",
"//python/ray/serve:serve_lib",
],
)
py_test(
name = "multi_deployment_1k_noop_replica_smoke_test",
size = "medium",
srcs = test_srcs,
env = {
"IS_SMOKE_TEST": "1",
},
main = "multi_deployment_1k_noop_replica.py",
tags = [
"exclusive",
"team:serve",
],
deps = [
"//:ray_lib",
"//python/ray/serve:serve_lib",
],
)
####
# AIR smoke tests
####
py_test(
name = "xgboost_train_batch_inference_benchmark_smoke_test",
size = "small",
srcs = test_srcs,
args = [
"xgboost",
"--smoke-test",
],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
main = "train_tests/xgboost_lightgbm/train_batch_inference_benchmark.py",
tags = [
"exclusive",
"team:ml",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
py_test(
name = "air_benchmark_gpu_batch_inference_parquet_smoke_test",
size = "small",
srcs = test_srcs,
args = [
"--data-directory=10G-image-data-synthetic-raw-parquet",
"--data-format=parquet",
"--smoke-test",
],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
main = "nightly_tests/dataset/gpu_batch_inference.py",
tags = [
"exclusive",
"team:data",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
py_test(
name = "air_benchmark_gpu_batch_inference_raw_image_smoke_test",
size = "small",
srcs = test_srcs,
args = [
"--data-directory=10G-image-data-synthetic-raw",
"--data-format=raw",
"--smoke-test",
],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
main = "nightly_tests/dataset/gpu_batch_inference.py",
tags = [
"exclusive",
"team:data",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
py_test(
name = "air_benchmark_pytorch_training_e2e_smoke_test",
size = "small",
srcs = test_srcs,
args = [
"--data-size-gb=1",
"--smoke-test",
],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
main = "air_tests/air_benchmarks/workloads/pytorch_training_e2e.py",
tags = [
"exclusive",
"team:ml",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
py_test(
name = "air_benchmark_tensorflow_smoke_test",
size = "large",
srcs = test_srcs,
args = [
"run",
"--num-runs=1",
"--num-epochs=1",
"--num-workers=1",
"--cpus-per-worker=1",
"--batch-size=1",
"--smoke-test",
"--local",
],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
main = "air_tests/air_benchmarks/workloads/tensorflow_benchmark.py",
tags = [
"exclusive",
"team:ml",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
py_test(
name = "air_benchmark_torch_smoke_test",
size = "large",
srcs = test_srcs,
args = [
"run",
"--num-runs=1",
"--num-epochs=1",
"--num-workers=1",
"--cpus-per-worker=1",
"--batch-size=1",
"--smoke-test",
"--local",
],
main = "air_tests/air_benchmarks/workloads/torch_benchmark.py",
tags = [
"exclusive",
"team:ml",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
py_test(
name = "air_benchmark_tune_torch_smoke_test",
# Keep this medium, as it will be slower if data has to be downloaded
# (runtime is shorter when air_benchmark_torch_smoke_test is executed first)
size = "medium",
srcs = test_srcs,
args = [
"--num-runs=1",
"--num-trials=1",
"--num-workers=1",
"--smoke-test",
],
main = "air_tests/air_benchmarks/workloads/tune_torch_benchmark.py",
tags = [
"exclusive",
"team:ml",
],
deps = [
"//:ray_lib",
"//python/ray/air:ml_lib",
],
)
####
# RELEASE TEST INFRA unit tests
####
sh_binary(
name = "run",
srcs = ["run_release_test.sh"],
data = ["run_release_test"],
env = {
"NO_INSTALL": "1",
"RAY_TEST_SCRIPT": "./run_release_test",
},
)
py_binary(
name = "run_release_test",
srcs = ["ray_release/scripts/run_release_test.py"],
data = glob(
["**/*.yaml"],
exclude = ["ray_release/**/*.yaml"],
) + [
"//python/ray/autoscaler/aws:test_configs",
"//python/ray/autoscaler/gcp:test_configs",
] + glob(
["**/*.py"],
exclude = ["ray_release/tests/*.py"],
),
exec_compatible_with = ["//bazel:py3"],
deps = [":ray_release"],
)
py_library(
name = "bazel",
srcs = ["ray_release/bazel.py"],
imports = ["."],
visibility = ["//ci/ray_ci:__pkg__"],
deps = [
bk_require("bazel-runfiles"),
],
)
py_library(
name = "logger",
srcs = ["ray_release/logger.py"],
imports = ["."],
visibility = ["//visibility:private"],
)
py_library(
name = "exception",
srcs = ["ray_release/exception.py"],
imports = ["."],
visibility = ["//visibility:private"],
)
py_library(
name = "result",
srcs = ["ray_release/result.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":exception",
],
)
py_library(
name = "kuberay_util",
srcs = ["ray_release/kuberay_util.py"],
imports = ["."],
visibility = ["//visibility:private"],
)
py_library(
name = "global_config",
srcs = ["ray_release/configs/global_config.py"],
data = glob(["ray_release/configs/*.yaml"]),
imports = ["."],
visibility = ["//ci/ray_ci:__pkg__"],
deps = [
bk_require("pyyaml"),
],
)
py_library(
name = "wheels",
srcs = ["ray_release/wheels.py"],
imports = ["."],
visibility = ["//visibility:private"],
)
py_library(
name = "retry",
srcs = ["ray_release/retry.py"],
imports = ["."],
visibility = ["//visibility:private"],
)
py_library(
name = "cloud_util",
srcs = ["ray_release/cloud_util.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":logger",
bk_require("boto3"),
bk_require("azure-storage-blob"),
bk_require("azure-identity"),
],
)
py_library(
name = "util",
srcs = ["ray_release/util.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":global_config",
":logger",
bk_require("anyscale"),
],
)
py_library(
name = "anyscale_util",
srcs = ["ray_release/anyscale_util.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":exception",
":logger",
":util",
bk_require("anyscale"),
],
)
py_library(
name = "aws",
srcs = ["ray_release/aws.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":logger",
":util",
bk_require("boto3"),
bk_require("botocore"),
bk_require("aws-requests-auth"),
],
)
py_library(
name = "github_client",
srcs = ["ray_release/github_client.py"],
imports = ["."],
visibility = ["//ci/ray_ci:__subpackages__"],
deps = [
bk_require("requests"),
],
)
py_library(
name = "test",
srcs = ["ray_release/test.py"],
imports = ["."],
visibility = ["//ci/ray_ci:__pkg__"],
deps = [
":anyscale_util",
":aws",
":github_client",
":global_config",
":logger",
":result",
":util",
bk_require("aioboto3"),
bk_require("boto3"),
bk_require("botocore"),
],
)
py_library(
name = "test_automation",
srcs = [
"ray_release/test_automation/ci_state_machine.py",
"ray_release/test_automation/release_state_machine.py",
"ray_release/test_automation/state_machine.py",
],
imports = ["."],
visibility = ["//ci/ray_ci:__pkg__"],
deps = [
":github_client",
":test",
bk_require("pybuildkite"),
],
)
py_library(
name = "ray_release",
srcs = glob(
["ray_release/**/*.py"],
exclude = [
"ray_release/tests/*.py",
"ray_release/configs/*.py",
"ray_release/scripts/*.py",
"ray_release/test_automation/*.py",
"ray_release/bazel.py",
"ray_release/logger.py",
"ray_release/result.py",
"ray_release/exception.py",
"ray_release/kuberay_util.py",
"ray_release/wheels.py",
"ray_release/util.py",
"ray_release/retry.py",
"ray_release/cloud_util.py",
"ray_release/anyscale_util.py",
"ray_release/aws.py",
"ray_release/test.py",
],
),
data = glob([
"ray_release/environments/*.env",
"release_*.yaml",
]) + [
"ray_release/buildkite/aws_instance_types.csv",
"ray_release/schema.json",
# Comprehensive filegroup that auto-discovers all ci/{aws,gce}.yaml configs for ray examples.
"//doc:all_examples_ci_configs",
],
imports = ["."],
visibility = ["//visibility:public"],
deps = [
":anyscale_util",
":aws",
":bazel",
":cloud_util",
":exception",
":global_config",
":kuberay_util",
":logger",
":result",
":retry",
":test",
":test_automation",
":util",
":wheels",
bk_require("anyscale"),
bk_require("aws-requests-auth"),
bk_require("azure-storage-blob"),
bk_require("azure-identity"),
bk_require("bazel-runfiles"),
bk_require("aioboto3"),
bk_require("boto3"),
bk_require("botocore"),
bk_require("click"),
bk_require("google-cloud-storage"),
bk_require("jinja2"),
bk_require("msal"),
bk_require("pybuildkite"),
bk_require("requests"),
],
)
py_library(
name = "test_utils",
srcs = ["ray_release/tests/utils.py"],
imports = ["."],
visibility = ["//visibility:private"],
)
py_test(
name = "test_alerts",
size = "small",
srcs = ["ray_release/tests/test_alerts.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_anyscale_job_manager",
size = "small",
srcs = ["ray_release/tests/test_anyscale_job_manager.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_anyscale_job_wrapper",
size = "small",
srcs = ["ray_release/tests/test_anyscale_job_wrapper.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_anyscale_job_runner",
size = "small",
srcs = ["ray_release/tests/test_anyscale_job_runner.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_library(
name = "bisect_lib",
srcs = ["ray_release/scripts/ray_bisect.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":ray_release",
],
)
py_test(
name = "test_bisect",
size = "small",
srcs = ["ray_release/tests/test_bisect.py"],
data = [
"cluster_tests/cpt_autoscaling_1-3_aws.yaml",
"ray_release/tests/test_collection_data.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":bisect_lib",
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_buildkite",
size = "small",
srcs = ["ray_release/tests/test_buildkite.py"],
data = [
"ray_release/configs/oss_config.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pyyaml"),
bk_require("pytest"),
],
)
py_test(
name = "test_byod_build",
size = "small",
srcs = ["ray_release/tests/test_byod_build.py"],
data = [
"ray_release/configs/oss_config.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_byod_build_context",
size = "small",
srcs = ["ray_release/tests/test_byod_build_context.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_custom_byod_build",
size = "small",
srcs = ["ray_release/tests/test_custom_byod_build.py"],
data = [
"ray_release/configs/oss_config.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":custom_byod_build_lib",
bk_require("pytest"),
],
)
py_test(
name = "test_custom_byod_build_init_helper",
size = "small",
srcs = ["ray_release/tests/test_custom_byod_build_init_helper.py"],
data = [
"ray_release/configs/oss_config.yaml",
"//:ray-images.json",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_custom_image_build_and_test_init",
size = "small",
srcs = ["ray_release/tests/test_custom_image_build_and_test_init.py"],
data = [
"hello_world_tests/hello_world_compute_config.yaml",
"ray_release/configs/oss_config.yaml",
"ray_release/tests/sample_5_tests.yaml",
"ray_release/tests/sample_tests.yaml",
"//:ray-images.json",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":custom_image_build_and_test_init_lib",
bk_require("pytest"),
],
)
py_test(
name = "test_cluster_manager",
size = "small",
srcs = ["ray_release/tests/test_cluster_manager.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
":test_utils",
bk_require("freezegun"),
bk_require("pytest"),
],
)
py_test(
name = "test_config",
size = "small",
srcs = ["ray_release/tests/test_config.py"],
data = glob(
["**/*.yaml"],
exclude = ["ray_release/**/*.yaml"],
) + [
"ray_release/tests/test_collection_data.yaml",
"//python/ray/autoscaler/aws:test_configs",
"//python/ray/autoscaler/azure:test_configs",
"//python/ray/autoscaler/gcp:test_configs",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_env",
size = "small",
srcs = ["ray_release/tests/test_env.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_global_config",
size = "small",
srcs = ["ray_release/tests/test_global_config.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":global_config",
":test_utils",
bk_require("pytest"),
],
)
py_test(
name = "test_glue",
size = "small",
srcs = ["ray_release/tests/test_glue.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
":test_utils",
bk_require("pytest"),
],
)
py_test(
name = "test_log_aggregator",
size = "small",
srcs = ["ray_release/tests/test_log_aggregator.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_new_sdk_compute_configs",
size = "small",
srcs = ["ray_release/tests/test_new_sdk_compute_configs.py"],
data = glob(
["**/*.yaml"],
exclude = ["ray_release/**/*.yaml"],
),
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("anyscale"),
bk_require("pytest"),
],
)
py_test(
name = "test_result",
size = "small",
srcs = ["ray_release/tests/test_result.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":exception",
":result",
bk_require("pytest"),
],
)
py_test(
name = "test_run_script",
size = "small",
srcs = ["ray_release/tests/test_run_script.py"],
data = [
"ray_release/tests/_test_catch_args.py",
"ray_release/tests/_test_run_release_test_sh.py",
"run_release_test.sh",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_state_machine",
size = "small",
srcs = ["ray_release/tests/test_state_machine.py"],
data = [
"ray_release/configs/oss_config.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_kuberay_util",
size = "small",
srcs = ["ray_release/tests/test_kuberay_util.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":kuberay_util",
bk_require("pytest"),
],
)
py_test(
name = "test_github_client",
size = "small",
srcs = ["ray_release/tests/test_github_client.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":github_client",
bk_require("pytest"),
bk_require("responses"),
],
)
py_test(
name = "test_test",
size = "small",
srcs = ["ray_release/tests/test_test.py"],
data = [
"ray_release/configs/oss_config.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":bazel",
":test",
bk_require("pytest"),
bk_require("responses"),
],
)
py_test(
name = "test_step",
size = "small",
srcs = ["ray_release/tests/test_step.py"],
data = [
"ray_release/configs/oss_config.yaml",
],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_retry",
size = "small",
srcs = ["ray_release/tests/test_retry.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":retry",
bk_require("pytest"),
],
)
py_test(
name = "test_template",
srcs = ["ray_release/tests/test_template.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":ray_release",
bk_require("pytest"),
],
)
py_test(
name = "test_cloud_util",
srcs = ["ray_release/tests/test_cloud_util.py"],
exec_compatible_with = ["//bazel:py3"],
tags = [
"release_unit",
"team:ci",
],
deps = [
":cloud_util",
bk_require("pytest"),
],
)
py_library(
name = "custom_byod_build_lib",
srcs = ["ray_release/scripts/custom_byod_build.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":ray_release",
bk_require("click"),
],
)
py_binary(
name = "custom_byod_build",
srcs = ["ray_release/scripts/custom_byod_build.py"],
exec_compatible_with = ["//bazel:py3"],
deps = [
":ray_release",
bk_require("click"),
],
)
py_library(
name = "custom_image_build_and_test_init_lib",
srcs = ["ray_release/scripts/custom_image_build_and_test_init.py"],
imports = ["."],
visibility = ["//visibility:private"],
deps = [
":ray_release",
bk_require("click"),
],
)
py_binary(
name = "custom_image_build_and_test_init",
srcs = ["ray_release/scripts/custom_image_build_and_test_init.py"],
exec_compatible_with = ["//bazel:py3"],
deps = [
":ray_release",
bk_require("click"),
],
)
py_binary(
name = "list_release_tests",
srcs = ["ray_release/scripts/list_release_tests.py"],
exec_compatible_with = ["//bazel:py3"],
deps = [
":ray_release",
bk_require("click"),
],
)