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

4976 lines
125 KiB
YAML

# Global release test configuration file.
# All your release test configuration should go here. Adding release tests here
# will automatically enable them in the Buildkite release testing schedules
# (unless they have frequency: manual).
# Here is an example configuration for reference:
#- name: example_test
# # Tests with the same group will be grouped in the Buildkite UI
# group: Example group
# # Provide the working directory which will be uploaded to the cluster
# working_dir: example_dir
#
# # How often to run the tests.
# # One of [manual, any, multi, nightly, nightly-3x, weekly].
# # Descriptions of each frequency (that's not immediately obvious):
# # - manual: Not run on a schedule, but can be manually run through the buildkite UI.
# # - nightly-3x: Run 3 times a week (Monday, Wednesday, Friday).
# frequency: weekly
# # Owning team. This field will be persisted to the database
# team: ml
#
# # Python version. This optional field determines which Python version to run tests
# # on. This must be a string!
# python: "3.7"
#
# # Cluster information
# cluster:
# # Location of cluster compute, relative to working_dir
# cluster_compute: cluster_compute.yaml
# # Autosuspend parameter passed to the cluster.
# # The cluster will automatically terminate if inactive for this
# # many minutes. Defaults to 10 if not set.
# autosuspend_mins: 10
# # Optional cloud_id to use instead of the default cloud
# cloud_id: cld_12345678
#
# # Run configuration for the test
# run:
# # If you want to wait for nodes to be ready, you can specify this here:
# wait_for_nodes:
# # Number of nodes
# num_nodes: 16
# # Timeout for waiting for nodes. If nodes are not up by then, the
# # test will fail.
# timeout: 600
#
# # Optional prepare script to be run on the cluster before the test script
# prepare: python prepare.py
# # The prepare command can have a separate timeout
# prepare_timeout: 300
#
# # Main script to run as the test script
# script: python workloads/train_small.py
# # Timeout in seconds. After this time the test is considered as failed.
# timeout: 600
#
# # You can specify smoke test definitions here. If a smoke test is triggered,
# # it will deep update the main test configuration with the values provided
# # here. Smoke tests will automatically run with IS_SMOKE_TEST=1 as en
# # environment variable and receive the --smoke-test flag as a parameter in the
# # run script.
# smoke_test:
# # Smoke tests can have different frequencies. A smoke test is only triggered
# # when the regular test is not matched.
# frequency: nightly
# # Here we adjust the run timeout down and run on less nodes. The test script
# # remains the same.
# run:
# timeout: 300
# wait_for_nodes:
# num_nodes: 4
# timeout: 600
#
# # After the test finished, this handler (in alerts/) will process the results.
# # It can then let the test fail, e.g. if a metric regression is observed.
# alert: default
#######################
# Baseline test
#######################
- name: hello_world
python: "3.10"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 1800
num_retries: 3
script: python hello_world.py
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
cluster:
anyscale_sdk_2026: true
cluster_compute: hello_world_compute_config_gce.yaml
- __suffix__: azure
env: azure
cluster:
anyscale_sdk_2026: true
cluster_compute: hello_world_compute_config_azure.yaml
- __suffix__: released
cluster:
ray_version: 2.50.0
- name: hello_world_custom_byod
python: "3.10"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
byod:
post_build_script: byod_hello_world.sh
python_depset: emoji.lock
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 1800
script: python hello_world_emoji.py
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
cluster:
anyscale_sdk_2026: true
cluster_compute: hello_world_compute_config_gce.yaml
- __suffix__: released
cluster:
anyscale_sdk_2026: true
ray_version: 2.50.0
- name: hello_world_custom_runtime_env
python: "3.10"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- HELLO_WORLD_TEST=1
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 1800
script: python hello_world.py
variations:
- __suffix__: aws
- name: hello_world_custom_byod_depset_only
python: "3.10"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
python_depset: emoji.lock
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 1800
script: bash test.sh
variations:
- __suffix__: aws
- name: hello_world_py313
python: "3.13"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
byod: {}
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 1800
num_retries: 3
script: python hello_world.py
variations:
- __suffix__: aws
- name: "hello_world_cu130_py{{python}}"
python: "{{python}}"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
matrix:
setup:
python: ["3.10", "3.11", "3.12", "3.13"]
cluster:
anyscale_sdk_2026: true
byod:
type: gpu-cu130
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 1800
num_retries: 3
script: python hello_world.py
#######################
# SSH sanity checks
#######################
- name: ssh_sanity_check
python: "3.11"
team: reef
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 600
script: bash sanity_check_ssh.sh
variations:
- __suffix__: aws
- name: ssh_sanity_check_llm
python: "3.12"
team: llm
group: hello_world
frequency: nightly
working_dir: hello_world_tests
cluster:
anyscale_sdk_2026: true
byod:
type: llm-cu130
# Doesn't need GPUs to run ssh sanity check
cluster_compute: hello_world_compute_config.yaml
run:
timeout: 600
script: bash sanity_check_ssh.sh
variations:
- __suffix__: aws
#######################
# Cluster scaling tests
#######################
- name: cluster_tune_scale_up_down
python: "3.10"
group: Cluster tests
working_dir: cluster_tests
frequency: nightly
team: ml
cluster:
cluster_compute: cpt_autoscaling_1-3_aws.yaml
run:
timeout: 3600
script: python workloads/tune_scale_up_down.py
wait_for_nodes:
num_nodes: 0
variations:
- __suffix__: aws
cluster:
anyscale_sdk_2026: true
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: cpt_autoscaling_1-3_gce.yaml
- __suffix__: kuberay
env: kuberay
frequency: nightly
cluster:
cluster_compute: cpt_autoscaling_1-3_kuberay.yaml
alert: default
#########################
# AIR release tests
#########################
# Ray Train distributed Torch benchmarks
- name: air_benchmark_torch_mnist_gpu_4x4
python: "3.10"
group: AIR tests
working_dir: air_tests/air_benchmarks
frequency: weekly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_gpu_4x4_aws.yaml
run:
timeout: 4800
script: RAY_TRAIN_V2_ENABLED=1 python workloads/torch_benchmark.py run --num-runs 3 --num-epochs 120 --num-workers 16 --cpus-per-worker 4 --batch-size 1024 --use-gpu
wait_for_nodes:
num_nodes: 4
smoke_test:
frequency: weekly
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_gpu_2x2_aws.yaml
run:
timeout: 3600
script: python workloads/torch_benchmark.py run --num-runs 3 --num-epochs 60 --num-workers 2 --cpus-per-worker 4 --batch-size 512 --use-gpu
wait_for_nodes:
num_nodes: 2
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_gpu_4x4_gce.yaml
smoke_test:
frequency: manual
alert: default
- name: air_benchmark_tune_torch_mnist
python: "3.10"
group: AIR tests
working_dir: air_tests/air_benchmarks
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_cpu_4_aws.yaml
run:
timeout: 3600
script: RAY_TRAIN_V2_ENABLED=1 python workloads/tune_torch_benchmark.py --num-runs 1 --num-trials 2 --num-workers 2
wait_for_nodes:
num_nodes: 4
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_cpu_4_gce.yaml
alert: default
# Ray Train distributed Tensorflow benchmarks
- name: air_benchmark_tensorflow_mnist_gpu_4x4
python: "3.10"
group: AIR tests
working_dir: air_tests/air_benchmarks
# https://github.com/ray-project/ray/issues/46687
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_gpu_4x4_aws.yaml
run:
timeout: 5400
script: RAY_TRAIN_V2_ENABLED=1 python workloads/tensorflow_benchmark.py run --num-runs 3 --num-epochs 200 --num-workers 16 --cpus-per-worker 4 --batch-size 1024 --use-gpu
wait_for_nodes:
num_nodes: 4
smoke_test:
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_gpu_2x2_aws.yaml
run:
script: python workloads/tensorflow_benchmark.py run --num-runs 3 --num-epochs 60 --num-workers 2 --cpus-per-worker 4 --batch-size 512 --use-gpu
wait_for_nodes:
num_nodes: 2
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_gpu_4x4_gce.yaml
smoke_test:
frequency: manual
alert: default
#######################
# AIR examples
#######################
# Test additional CPU nodes for preprocessing.
- name: air_example_dreambooth_finetuning
python: "3.10"
group: AIR examples
working_dir: air_examples/dreambooth
# https://github.com/ray-project/ray/issues/49847
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: dreambooth_compute_aws.yaml
run:
timeout: 1800
script: pip install -Ur dreambooth/requirements.txt && bash dreambooth_run.sh
artifact_path: /tmp/artifacts/example_out.jpg
# variations: A10G not available on GCE, yet.
- name: air_example_dreambooth_finetuning_lora
python: "3.10"
group: AIR examples
working_dir: air_examples/dreambooth
# https://github.com/ray-project/ray/issues/49846
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: dreambooth_compute_aws.yaml
run:
timeout: 1800
script: pip install -Ur dreambooth/requirements.txt && bash dreambooth_run.sh --lora
artifact_path: /tmp/artifacts/example_out.jpg
- name: air_example_gptj_deepspeed_fine_tuning
python: "3.10"
group: AIR examples
working_dir: air_examples/gptj_deepspeed_finetuning
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
post_build_script: byod_gptj_test.sh
cluster_compute: gptj_deepspeed_compute_aws.yaml
run:
timeout: 4500
script: RAY_TRAIN_V2_ENABLED=1 python test_myst_doc.py --path gptj_deepspeed_fine_tuning.ipynb
- name: air_example_dolly_v2_lightning_fsdp_finetuning
python: "3.10"
group: AIR examples
working_dir: air_examples/dolly_v2_lightning_fsdp_finetuning
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
post_build_script: byod_dolly_test.sh
cluster_compute: dolly_v2_fsdp_compute_aws.yaml
run:
timeout: 4700
script: RAY_TRAIN_V2_ENABLED=1 python test_myst_doc.py --path lightning-llm-finetuning-7b.ipynb
# variations: TODO(jungong): add GCP variation.
- name: air_example_vicuna_13b_lightning_deepspeed_finetuning
python: "3.10"
group: AIR examples
working_dir: air_examples/vicuna_13b_lightning_deepspeed_finetuning
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
post_build_script: byod_vicuna_test.sh
cluster_compute: vicuna_13b_deepspeed_compute_aws.yaml
run:
timeout: 4700
script: python test_myst_doc.py --path vicuna_13b_lightning_deepspeed_finetune.ipynb
#######################
# Tune tests
#######################
- name: tune_with_frequent_pausing
python: "3.10"
group: Tune tests
working_dir: tune_tests
frequency: nightly-3x
team: ml
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_memory_usage_threshold=0.5
- automatic_object_spilling_enabled=0
cluster_compute: frequent_pausing/compute_config_aws.yaml
run:
timeout: 600 # 10min
long_running: true
script: RAY_TRAIN_V2_ENABLED=1 python frequent_pausing/script.py
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: frequent_pausing/compute_config_gce.yaml
alert: default
- name: tune_cloud_long_running_cloud_storage
python: "3.10"
group: Tune cloud tests
working_dir: tune_tests/cloud_tests
frequency: weekly
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_aws_1x4.yaml
run:
# 14 hours
timeout: 50400
long_running: true
script: RAY_TRAIN_V2_ENABLED=1 python workloads/long_running_cloud_storage.py s3://tune-cloud-tests/long_running_cloud_storage
# NOTE: This smoke test is not useful to run because the point of the test
# is to be long running. This is just for debugging updates to the test quickly.
smoke_test:
frequency: manual
run:
timeout: 600
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: tpl_gce_1x4.yaml
run:
# 14 hours
timeout: 50400
long_running: true
script: RAY_TRAIN_V2_ENABLED=1 python workloads/long_running_cloud_storage.py gs://tune-cloud-tests/long_running_cloud_storage
wait_for_nodes:
num_nodes: 1
alert: long_running_tests
########################
# Tune scalability tests
########################
- name: tune_scalability_bookkeeping_overhead
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: nightly
team: ml
cluster:
cluster_compute: tpl_1x16.yaml
run:
timeout: 1200
script: python workloads/test_bookkeeping_overhead.py
alert: tune_tests
variations:
- __suffix__: aws
cluster:
anyscale_sdk_2026: true
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_gce_1x16.yaml
- __suffix__: kuberay
env: kuberay
frequency: nightly
cluster:
cluster_compute: kuberay.yaml
- name: tune_scalability_durable_trainable
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_16x2.yaml
run:
timeout: 900
script: python workloads/test_durable_trainable.py --bucket s3://tune-cloud-tests/scalability_durable_trainable
wait_for_nodes:
num_nodes: 16
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
run:
timeout: 900
script: python workloads/test_durable_trainable.py --bucket gs://tune-cloud-tests/scalability_durable_trainable
wait_for_nodes:
num_nodes: 16
cluster:
cluster_compute: tpl_gce_16x2.yaml
alert: tune_tests
- name: tune_scalability_durable_multifile_checkpoints
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_16x2.yaml
run:
timeout: 900
script: python workloads/test_durable_multifile_checkpoints.py --bucket s3://tune-cloud-tests/scalability_durable_multifile_checkpoints
wait_for_nodes:
num_nodes: 16
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
run:
timeout: 900
script: python workloads/test_durable_multifile_checkpoints.py --bucket gs://tune-cloud-tests/scalability_durable_multifile_checkpoints
wait_for_nodes:
num_nodes: 16
cluster:
cluster_compute: tpl_gce_16x2.yaml
alert: tune_tests
- name: tune_scalability_long_running_large_checkpoints
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: weekly
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_1x32_hd.yaml
run:
timeout: 86400
script: python workloads/test_long_running_large_checkpoints.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: tune_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
cluster:
cluster_compute: tpl_gce_1x32_hd.yaml
- name: tune_scalability_network_overhead
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: weekly
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_100x2.yaml
run:
timeout: 750
prepare_timeout: 1200
script: python workloads/test_network_overhead.py
wait_for_nodes:
num_nodes: 100
alert: tune_tests
variations:
- __suffix__: aws
- __suffix__: smoke-test
frequency: nightly
cluster:
cluster_compute: tpl_20x2.yaml
run:
timeout: 750
prepare_timeout: 600
script: python workloads/test_network_overhead.py --smoke-test
wait_for_nodes:
num_nodes: 20
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: tpl_gce_100x2.yaml
- name: tune_scalability_result_throughput_cluster
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: nightly-3x
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_16x64.yaml
run:
timeout: 600
script: python workloads/test_result_throughput_cluster.py
wait_for_nodes:
num_nodes: 16
alert: tune_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: tpl_gce_16x64.yaml
- name: tune_scalability_result_throughput_single_node
python: "3.10"
group: Tune scalability tests
working_dir: tune_tests/scalability_tests
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_1x96.yaml
run:
timeout: 600
script: python workloads/test_result_throughput_single_node.py
alert: tune_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: tpl_gce_1x96.yaml
############################
# Tune fault tolerance tests
############################
- name: tune_worker_fault_tolerance
python: "3.10"
group: Tune fault tolerance tests
working_dir: tune_tests/fault_tolerance_tests
frequency: nightly-3x
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_aws_16x1.yaml
run:
timeout: 5400
script: python workloads/test_tune_worker_fault_tolerance.py --bucket s3://tune-cloud-tests/worker_fault_tolerance
wait_for_nodes:
num_nodes: 16
# Disabled until we can kill nodes in GCE
# variations:
# - __suffix__: aws
# - __suffix__: gce
# env: gce
# frequency: manual
# run:
# timeout: 5400
# script: python workloads/test_tune_worker_fault_tolerance.py --bucket gs://tune-cloud-tests/worker_fault_tolerance
#
# wait_for_nodes:
# num_nodes: 16
# cluster:
# cluster_compute: tpl_gce_16x1.yaml
#######################
# Long running tests
#######################
- name: long_running_actor_deaths
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1.yaml
run:
timeout: 86400
script: python workloads/actor_deaths.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
- name: long_running_many_actor_tasks
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1.yaml
run:
timeout: 86400
script: python workloads/many_actor_tasks.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
- name: long_running_many_drivers
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_4.yaml
run:
timeout: 86400
script: python workloads/many_drivers.py --iteration-num=4000
long_running: true
wait_for_nodes:
num_nodes: 4
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_4_gce.yaml
- name: long_running_many_tasks
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1.yaml
run:
timeout: 86400
script: python workloads/many_tasks.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
- name: long_running_many_tasks_serialized_ids
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1.yaml
run:
timeout: 86400
script: python workloads/many_tasks_serialized_ids.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
- name: long_running_node_failures
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1.yaml
run:
timeout: 86400
script: python workloads/node_failures.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
- name: long_running_serve
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1_large.yaml
run:
timeout: 86400
script: python workloads/serve.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 3600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
- name: long_running_serve_failure
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1_c5.yaml
run:
timeout: 86400
script: python workloads/serve_failure.py
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 600
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 86400
cluster:
cluster_compute: tpl_cpu_1_c5_gce.yaml
- name: long_running_many_jobs
python: "3.10"
group: Long running tests
working_dir: long_running_tests
frequency: weekly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: tpl_cpu_1.yaml
run:
timeout: 86400
script: python workloads/long_running_many_jobs.py --num-clients=1
long_running: true
smoke_test:
frequency: nightly
run:
timeout: 1800
alert: long_running_tests
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
smoke_test:
frequency: manual
run:
timeout: 3600
cluster:
cluster_compute: tpl_cpu_1_gce.yaml
########################
# Jobs tests
########################
- name: jobs_basic_local_working_dir
python: "3.10"
group: Jobs tests
working_dir: jobs_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_4_xlarge.yaml
run:
timeout: 600
script: python workloads/jobs_basic.py --working-dir "workloads"
wait_for_nodes:
num_nodes: 4
alert: default
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: compute_tpl_gce_4_xlarge.yaml
- name: jobs_basic_remote_working_dir
python: "3.10"
group: Jobs tests
working_dir: jobs_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_4_xlarge.yaml
run:
timeout: 600
script: python workloads/jobs_basic.py --working-dir "https://github.com/anyscale/job-services-cuj-examples/archive/refs/heads/main.zip"
wait_for_nodes:
num_nodes: 4
alert: default
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: compute_tpl_gce_4_xlarge.yaml
- name: jobs_remote_multi_node
python: "3.10"
group: Jobs tests
team: serve
frequency: nightly
working_dir: jobs_tests
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_4_xlarge.yaml
run:
timeout: 600
script: python workloads/jobs_remote_multi_node.py
wait_for_nodes:
num_nodes: 4
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: compute_tpl_gce_4_xlarge.yaml
- name: jobs_check_cuda_available
python: "3.10"
group: Jobs tests
team: serve
frequency: nightly
working_dir: jobs_tests
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_gpu_node.yaml
run:
timeout: 600
script: python workloads/jobs_check_cuda_available.py
wait_for_nodes:
num_nodes: 2
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: compute_tpl_gce_gpu_node.yaml
- __suffix__: py310_cu130
python: "3.10"
cluster:
byod:
type: gpu-cu130
python_depset: gpu_cu130_py3.10.lock
cluster_compute: compute_tpl_gpu_node.yaml
- __suffix__: py311_cu130
python: "3.11"
cluster:
byod:
type: gpu-cu130
python_depset: gpu_cu130_py3.11.lock
cluster_compute: compute_tpl_gpu_node.yaml
- __suffix__: py312_cu130
python: "3.12"
cluster:
byod:
type: gpu-cu130
python_depset: gpu_cu130_py3.12.lock
cluster_compute: compute_tpl_gpu_node.yaml
- __suffix__: py313_cu130
python: "3.13"
cluster:
byod:
type: gpu-cu130
python_depset: gpu_cu130_py3.13.lock
cluster_compute: compute_tpl_gpu_node.yaml
- name: "jobs_check_cuda_version_cu130_py{{python}}"
python: "{{python}}"
group: Jobs tests
team: serve
frequency: nightly
working_dir: jobs_tests
matrix:
setup:
python: ["3.10", "3.11", "3.12", "3.13"]
cluster:
anyscale_sdk_2026: true
byod:
type: gpu-cu130
python_depset: gpu_cu130_py{{python}}.lock
cluster_compute: compute_tpl_gpu_node.yaml
run:
timeout: 600
script: python workloads/jobs_check_cuda_version.py --expected-cuda-version 13.0
wait_for_nodes:
num_nodes: 2
- name: jobs_specify_num_gpus
python: "3.10"
group: Jobs tests
team: serve
frequency: nightly
working_dir: jobs_tests
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_gpu_worker.yaml
run:
timeout: 600
script: python workloads/jobs_specify_num_gpus.py --working-dir "workloads"
wait_for_nodes:
num_nodes: 2
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: compute_tpl_gce_gpu_worker.yaml
########################
# Runtime env tests
########################
- name: runtime_env_rte_many_tasks_actors
python: "3.10"
group: Runtime env tests
working_dir: runtime_env_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: rte_small.yaml
run:
timeout: 600
script: python workloads/rte_many_tasks_actors.py
wait_for_nodes:
num_nodes: 4
alert: default
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: rte_gce_small.yaml
- name: runtime_env_wheel_urls
python: "3.10"
group: Runtime env tests
working_dir: runtime_env_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: rte_minimal.yaml
run:
timeout: 9000
script: python workloads/wheel_urls.py
wait_for_nodes:
num_nodes: 1
alert: default
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: rte_gce_minimal.yaml
# It seems like the consensus is that this should be tested in CI, and not in a nightly test.
# - name: runtime_env_rte_ray_client
# group: Runtime env tests
# working_dir: runtime_env_tests
# frequency: nightly
# team: core
# cluster:
# cluster_compute: rte_minimal.yaml
# run:
# timeout: 600
# script: python workloads/rte_ray_client.py
# wait_for_nodes:
# num_nodes: 1
# alert: default
########################
# Serve tests
########################
- name: pytest_serve_scale_replicas
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_tpl_single_node_32_cpu.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
script: python workloads/replica_scalability.py
alert: default
variations:
- __suffix__: aws
- __suffix__: aws.haproxy
cluster:
byod:
runtime_env:
- RAY_SERVE_ENABLE_HA_PROXY=1
- name: pytest_serve_multi_deployment_1k_noop_replica
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: weekly
team: serve
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_tpl_32_cpu.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
script: python workloads/multi_deployment_1k_noop_replica.py
alert: default
variations:
- __suffix__: aws
- __suffix__: aws.py312
python: "3.12"
- __suffix__: aws.haproxy
cluster:
byod:
runtime_env:
- RAY_SERVE_ENABLE_HA_PROXY=1
- __suffix__: gce
env: gce
frequency: manual
cluster:
project_id: prj_xqmpk8ps6civt438u1hp5pi88g
cloud_id: cld_vy7xqacrvddvbuy95auinvuqmt
cluster_compute: compute_tpl_32_cpu_gce.yaml
- name: pytest_serve_autoscaling_load_test
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_single_node_32_cpu.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
script: python workloads/autoscaling_load_test.py
alert: default
variations:
- __suffix__: aws
- __suffix__: aws.haproxy
cluster:
byod:
runtime_env:
- RAY_SERVE_ENABLE_HA_PROXY=1
- name: serve_controller_benchmark_haproxy
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: weekly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
# specifically testing haproxy here because with serve
# proxy the benchmark profile changes significantly.
# Given that haproxy is going to be the path forward, make sense
# to use that here.
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DIRECT_INGRESS_MIN_DRAINING_PERIOD_S=0.01
cluster_compute: compute_tpl_8_cpu_autoscaling.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 14400
long_running: false
script: python workloads/microbenchmarks.py --run-controller
alert: default
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
project_id: prj_xqmpk8ps6civt438u1hp5pi88g
cloud_id: cld_vy7xqacrvddvbuy95auinvuqmt
cluster_compute: compute_tpl_single_node_gce.yaml
- name: pytest_serve_microbenchmarks
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_tpl_single_node_16_cpu.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
script: python workloads/microbenchmarks.py --run-all
alert: default
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
project_id: prj_xqmpk8ps6civt438u1hp5pi88g
cloud_id: cld_vy7xqacrvddvbuy95auinvuqmt
cluster_compute: compute_tpl_single_node_gce.yaml
- name: pytest_serve_throughput_optimized_microbenchmarks
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_SERVE_THROUGHPUT_OPTIMIZED=1
- RAY_SERVE_DIRECT_INGRESS_MIN_DRAINING_PERIOD_S=0.01
- RAY_SERVE_REPLICA_GRPC_MAX_MESSAGE_LENGTH=10500000
cluster_compute: compute_tpl_single_node_16_cpu.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
script: python workloads/microbenchmarks.py --run-all
alert: default
variations:
- __suffix__: aws
- __suffix__: aws.haproxy
cluster:
byod:
runtime_env:
- RAY_SERVE_THROUGHPUT_OPTIMIZED=1
- RAY_SERVE_DIRECT_INGRESS_MIN_DRAINING_PERIOD_S=0.01
- RAY_SERVE_REPLICA_GRPC_MAX_MESSAGE_LENGTH=10500000
- RAY_SERVE_ENABLE_HA_PROXY=1
run:
timeout: 7200
long_running: false
# HAProxy is HTTP-only and does not proxy the gRPC server bound by
# gRPCOptions(port=9000); --run-grpc would crash with connection refused
# under RAY_SERVE_ENABLE_HA_PROXY=1. Run the HAProxy-proxied transports
# only.
script: >-
python workloads/microbenchmarks.py
--run-http --run-handle --run-latency --run-throughput
--run-streaming
- __suffix__: gce
env: gce
frequency: manual
cluster:
project_id: prj_xqmpk8ps6civt438u1hp5pi88g
cloud_id: cld_vy7xqacrvddvbuy95auinvuqmt
cluster_compute: compute_tpl_single_node_gce.yaml
- name: pytest_serve_router_benchmark
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: weekly
team: serve
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_tpl_8_cpu_autoscaling.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
# Every variation fully overrides this
script: "false"
alert: default
variations:
# Low-latency / high-throughput workload
- __suffix__: aws.standard
cluster:
byod:
runtime_env:
- RAY_SERVE_RUN_USER_CODE_IN_SEPARATE_THREAD=0
- RAY_SERVE_RUN_ROUTER_IN_SEPARATE_LOOP=0
run:
timeout: 7200
long_running: false
script: >-
python workloads/router_microbenchmark.py
--simulated-latency-mean-s 0.01
--simulated-latency-cap-s 0.1
--max-ongoing-requests-child 5
--max-ongoing-requests-parent 5
--max-users-per-task 24
--router-type pow2
# Supply-constrained workload
- __suffix__: aws.supply_constraint
run:
timeout: 7200
long_running: false
script: >-
python workloads/router_microbenchmark.py
--simulated-latency-mean-s 1
--simulated-latency-cap-s 10
--max-ongoing-requests-child 2
--max-ongoing-requests-parent 5
--router-type pow2
--router-type capacity_queue
- name: pytest_serve_resnet_benchmark
python: "3.10"
group: Serve tests
working_dir: serve_tests
frequency: nightly
team: serve
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_tpl_gpu_node.yaml
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 7200
long_running: false
script: python workloads/serve_resnet_benchmark.py --gpu-env
alert: default
variations:
- __suffix__: aws
- __suffix__: aws.haproxy
cluster:
byod:
runtime_env:
- RAY_SERVE_ENABLE_HA_PROXY=1
- __suffix__: gce
env: gce
frequency: manual
cluster:
project_id: prj_xqmpk8ps6civt438u1hp5pi88g
cloud_id: cld_vy7xqacrvddvbuy95auinvuqmt
cluster_compute: compute_tpl_gpu_node_gce.yaml
########################
# Train tests
########################
- name: training_ingest_benchmark-task=image_classification
python: "3.10"
group: Train tests
working_dir: train_tests/benchmark
frequency: nightly
team: ml
cluster:
byod:
runtime_env:
# Enable verbose stats for resource manager
- RAY_DATA_DEBUG_RESOURCE_MANAGER=1
# Fail the test if a worker OOMs
- RAYTEST_FAIL_ON_WORKER_OOM=1
# 'type: gpu' means: use the 'ray-ml' image.
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_configs/compute_gpu_4x4_aws.yaml
variations:
- __suffix__: full_training.parquet
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --image_classification_data_format=parquet
- __suffix__: full_training.parquet.preserve_order
frequency: weekly
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --image_classification_data_format=parquet --preserve_order=True
- __suffix__: full_training.parquet.torch_dataloader
frequency: manual
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=torch --num_workers=16 --image_classification_data_format=parquet
- __suffix__: skip_training.parquet
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True --image_classification_data_format=parquet
- __suffix__: skip_training.parquet.preserve_order
frequency: weekly
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True --image_classification_data_format=parquet --preserve_order=True
- __suffix__: skip_training.parquet.torch_dataloader
frequency: manual
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=torch --num_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True --image_classification_data_format=parquet
- __suffix__: skip_training.parquet.slow_consumer
run:
timeout: 3000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True --image_classification_data_format=parquet --train_step_sleep_s=5.0 --max_train_batches=500 --limit_training_rows=-1 --image_classification_use_1t_dataset=True
- __suffix__: skip_training.parquet.fault_tolerance
frequency: weekly
run:
timeout: 2700
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --mock_gpu=True --skip_train_step=True --skip_validation_step=True --num_epochs=5 --max_failures=4 --image_classification_data_format=parquet
prepare: python setup_chaos.py --kill-interval 480 --max-to-kill 2 --kill-delay 360
cluster:
byod:
runtime_env:
- RAY_DATA_DEBUG_RESOURCE_MANAGER=1
- RAYTEST_FAIL_ON_WORKER_OOM=0 # Workers are intentionally killed
cluster_compute: compute_configs/compute_mock_gpu_4x4_aws.yaml
- __suffix__: full_training.s3_url
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --image_classification_data_format=s3_url
- __suffix__: skip_training.s3_url
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step True --skip_validation_at_epoch_end True --image_classification_data_format=s3_url
- __suffix__: full_training.jpeg
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --dataloader_type=ray_data --num_workers=16
- __suffix__: full_training.jpeg.preserve_order
frequency: weekly
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --dataloader_type=ray_data --num_workers=16 --preserve_order=True
- __suffix__: full_training.jpeg.torch_dataloader
frequency: manual
run:
timeout: 2000
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --dataloader_type=torch --num_workers=16 --num_torch_workers=16
- __suffix__: skip_training.jpeg
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --dataloader_type=ray_data --num_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True
- __suffix__: skip_training.jpeg.preserve_order
frequency: weekly
run:
timeout: 2400
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --dataloader_type=ray_data --num_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True --preserve_order=True
- __suffix__: skip_training.jpeg.torch_dataloader
frequency: manual
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --dataloader_type=torch --num_workers=16 --num_torch_workers=16 --skip_train_step=True --skip_validation_at_epoch_end=True
- __suffix__: skip_training.jpeg.local_fs
run:
timeout: 1200
script: bash image_classification/jpeg/download_input_data_from_s3.sh && RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --image_classification_local_dataset=True --dataloader_type=ray_data --num_workers=1 --skip_train_step=True --skip_validation_at_epoch_end=True
cluster:
cluster_compute: compute_configs/compute_gpu_1x1_aws.yaml
- __suffix__: skip_training.jpeg.local_fs.preserve_order
frequency: manual
run:
timeout: 1200
script: bash image_classification/jpeg/download_input_data_from_s3.sh && RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --image_classification_local_dataset=True --dataloader_type=ray_data --num_workers=1 --skip_train_step=True --skip_validation_at_epoch_end=True --preserve_order=True
cluster:
cluster_compute: compute_configs/compute_gpu_1x1_aws.yaml
- __suffix__: skip_training.jpeg.local_fs.torch_dataloader
frequency: manual
run:
timeout: 1200
script: bash image_classification/jpeg/download_input_data_from_s3.sh && RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --image_classification_local_dataset=True --dataloader_type=torch --num_workers=1 --num_torch_workers=32 --skip_train_step=True --skip_validation_at_epoch_end=True
cluster:
cluster_compute: compute_configs/compute_gpu_1x1_aws.yaml
- __suffix__: skip_training.jpeg.local_fs_multi_gpus
run:
timeout: 1200
script: bash image_classification/jpeg/download_input_data_from_s3.sh && RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --image_classification_local_dataset=True --dataloader_type=ray_data --num_workers=4 --skip_train_step=True --skip_validation_at_epoch_end=True
cluster:
cluster_compute: compute_configs/compute_gpu_1x4_aws.yaml
- __suffix__: skip_training.jpeg.local_fs_multi_gpus.preserve_order
frequency: manual
run:
timeout: 1200
script: bash image_classification/jpeg/download_input_data_from_s3.sh && RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --image_classification_local_dataset=True --dataloader_type=ray_data --num_workers=4 --skip_train_step=True --skip_validation_at_epoch_end=True --preserve_order=True
cluster:
cluster_compute: compute_configs/compute_gpu_1x4_aws.yaml
- __suffix__: skip_training.jpeg.local_fs_multi_gpus.torch_dataloader
frequency: manual
run:
timeout: 1200
script: bash image_classification/jpeg/download_input_data_from_s3.sh && RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --image_classification_data_format=jpeg --image_classification_local_dataset=True --dataloader_type=torch --num_workers=4 --num_torch_workers=9 --skip_train_step=True --skip_validation_at_epoch_end=True
cluster:
cluster_compute: compute_configs/compute_gpu_1x4_aws.yaml
- name: training_ingest_benchmark-task=image_classification-heterogenous_fixed_size
python: "3.10"
group: Train tests
working_dir: train_tests/benchmark
frequency: nightly
team: ml
cluster:
byod:
runtime_env:
# Enable verbose stats for resource manager
- RAY_DATA_DEBUG_RESOURCE_MANAGER=1
# Fail the test if a worker OOMs
- RAYTEST_FAIL_ON_WORKER_OOM=1
# Fail the test if a node dies
- RAYTEST_FAIL_ON_DEAD_NODES=1
# 'type: gpu' means: use the 'ray-ml' image.
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_configs/heterogenous_fixed_size_gpu_4x4_aws.yaml
variations:
- __suffix__: skip_training.parquet
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step True --skip_validation_at_epoch_end True --image_classification_data_format=parquet
- __suffix__: skip_training.s3_url
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step True --skip_validation_at_epoch_end True --image_classification_data_format=s3_url
- name: training_ingest_benchmark-task=image_classification-heterogenous_autoscaling
python: "3.10"
group: Train tests
working_dir: train_tests/benchmark
frequency: nightly
team: ml
cluster:
byod:
runtime_env:
# Enable verbose stats for resource manager
- RAY_DATA_DEBUG_RESOURCE_MANAGER=1
# Fail the test if a worker OOMs
- RAYTEST_FAIL_ON_WORKER_OOM=1
# Fail the test if a node dies
- RAYTEST_FAIL_ON_DEAD_NODES=1
# 'type: gpu' means: use the 'ray-ml' image.
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_configs/heterogenous_autoscaling_gpu_4x4_aws.yaml
variations:
- __suffix__: skip_training.parquet
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step True --skip_validation_at_epoch_end True --image_classification_data_format=parquet
- __suffix__: skip_training.s3_url
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --skip_train_step True --skip_validation_at_epoch_end True --image_classification_data_format=s3_url
- name: training_ingest_benchmark-task=recsys
python: "3.10"
group: Train tests
working_dir: train_tests/benchmark
# TODO: Keep these manual for now -- there are a still a few issues to resolve.
frequency: manual
team: ml
cluster:
byod:
runtime_env:
# Fail the test if a worker OOMs
- RAYTEST_FAIL_ON_WORKER_OOM=1
type: gpu
post_build_script: byod_install_torchrec.sh
anyscale_sdk_2026: true
cluster_compute: compute_configs/compute_gpu_8xA100_aws.yaml
variations:
- __suffix__: skip_training.mock_dataloader
run:
timeout: 600
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=recsys --dataloader_type=mock --num_workers=8 --train_batch_size=8192 --num_epochs=1 --skip_train_step=True --skip_validation_at_epoch_end=True
- __suffix__: skip_training.ray_data
run:
timeout: 600
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=recsys --dataloader_type=ray_data --num_workers=8 --train_batch_size=8192 --num_epochs=1 --skip_train_step=True --skip_validation_at_epoch_end=True
- __suffix__: full_training.mock_dataloader
run:
timeout: 600
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=recsys --dataloader_type=mock --num_workers=8 --train_batch_size=8192 --validation_batch_size=16384 --num_epochs=1
- __suffix__: full_training.ray_data
run:
timeout: 1200
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=recsys --dataloader_type=ray_data --num_workers=8 --train_batch_size=8192 --validation_batch_size=16384 --num_epochs=1
- name: training_ingest_benchmark-soak_test
python: "3.10"
group: Train tests
working_dir: train_tests/benchmark
frequency: weekly
team: ml
cluster:
byod:
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_configs/compute_gpu_4x4_cpu_4_aws.yaml
run:
timeout: 43200
long_running: true
script: RAY_TRAIN_V2_ENABLED=1 python train_benchmark.py --task=image_classification --dataloader_type=ray_data --num_workers=16 --image_classification_data_format=parquet --num_epochs=50
- name: train_multinode_persistence
python: "3.10"
group: Train tests
working_dir: train_tests/multinode_persistence
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
post_build_script: byod_train_persistence_test.sh
cluster_compute: compute_aws.yaml
run:
timeout: 3000
script: pytest -v test_persistence.py -s
wait_for_nodes:
num_nodes: 4
variations:
- __suffix__: aws_v1
- __suffix__: aws_v2
run:
script: RAY_TRAIN_V2_ENABLED=1 pytest -v test_persistence.py -s
- __suffix__: gce_v1
env: gce
frequency: manual
cluster:
cluster_compute: compute_gce.yaml
- __suffix__: gce_v2
env: gce
frequency: manual
cluster:
cluster_compute: compute_gce.yaml
run:
script: RAY_TRAIN_V2_ENABLED=1 pytest -v test_persistence.py -s
alert: default
- name: train_async_checkpointing_validation_benchmark
python: "3.10"
group: Train tests
working_dir: train_tests/async_checkpointing_validation_benchmark
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_aws.yaml
run:
timeout: 10800
script: RAY_TRAIN_V2_ENABLED=1 python test_async_checkpointing_validation_benchmark.py
wait_for_nodes:
num_nodes: 2
alert: default
- name: train_colocate_trainer
python: "3.10"
group: Train tests
working_dir: train_tests/colocate_trainer
# Ray Train V2 doesn't support colocation.
# TODO: Decide whether to remove this test or re-enable it if we add support again.
frequency: manual
team: ml
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_aws.yaml
run:
timeout: 3000
script: pytest -v test_colocate_trainer.py -s
wait_for_nodes:
num_nodes: 4
alert: default
- name: torch_local_mode
python: "3.10"
group: Train tests
working_dir: train_tests/local_mode
frequency: nightly
team: ml
cluster:
byod:
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_gpu_2x4_aws.yaml
run:
timeout: 1800
script: python torch_local_mode_launcher.py
# Reference: how to run a release test on the torchft Ray ML image variant.
# The custom BYOD image is the core Ray CUDA image (py3.13) with the torchft ML
# dependency lock (release/ray_release/byod/ml_torchft_py3.13.lock, generated by
# ci/raydepsets/configs/release_ml_torchft_tests.depsets.yaml) installed on top.
# Setting `python_depset` is enough: the BYOD build automatically runs
# `uv pip install --system --no-deps -r python_depset.lock`, so no
# post_build_script is needed to install the deps.
- name: torchft_hello_world
python: "3.13"
group: Train tests
team: ml
frequency: manual
working_dir: train_tests/torchft
cluster:
anyscale_sdk_2026: true
byod:
type: cu123
python_depset: ml_torchft_py3.13.lock
cluster_compute: compute_aws.yaml
run:
timeout: 1800
script: python torchft_hello_world.py
- name: torch_lightning
python: "3.10"
group: Train tests
working_dir: train_tests/pytorch_lightning
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
post_build_script: byod_pytorch_lightning_test.sh
cluster_compute: compute_aws.yaml
run:
timeout: 1800
script: RAY_TRAIN_V2_ENABLED=1 python test_lightning.py
- name: huggingface_transformers
python: "3.10"
group: Train tests
working_dir: train_tests/huggingface_transformers
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
post_build_script: byod_huggingface_transformers_test.sh
cluster_compute: compute_aws.yaml
run:
timeout: 1800
script: RAY_TRAIN_V2_ENABLED=1 python test_huggingface_transformers.py
- name: huggingface_accelerate
python: "3.10"
group: Train tests
working_dir: train_tests/huggingface_accelerate
frequency: nightly
team: ml
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: compute_aws.yaml
run:
timeout: 1800
script: RAY_TRAIN_V2_ENABLED=1 python test_huggingface_accelerate.py
- name: "{{framework}}_train_batch_inference_benchmark_{{size}}"
python: "3.10"
group: Train tests
working_dir: train_tests/xgboost_lightgbm
matrix:
setup:
framework: [xgboost, lightgbm]
size: [10G, 100G]
frequency: nightly-3x
team: ml
cluster:
byod:
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_aws_{{size}}.yaml
run:
timeout: 1800
script: RAY_TRAIN_V2_ENABLED=1 python train_batch_inference_benchmark.py "{{framework}}" --size={{size}}
smoke_test:
frequency: manual
run:
timeout: 1800
alert: default
- name: train_elastic_e2e_with_node_killing
python: "3.10"
group: Train tests
working_dir: train_tests/elastic_training
frequency: weekly
team: ml
cluster:
byod:
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_gpu_aws.yaml
run:
timeout: 4800
script: RAY_TRAIN_V2_ENABLED=1 python torch_elastic_e2e.py run --num-epochs 60
wait_for_nodes:
num_nodes: 1
variations:
- __suffix__: aws
alert: default
- name: elastic_benchmark
python: "3.10"
group: Train tests
working_dir: train_tests/benchmark
frequency: weekly
team: ml
cluster:
byod:
type: gpu
anyscale_sdk_2026: true
cluster_compute: compute_configs/compute_gpu_8x4_aws.yaml
run:
timeout: 7200
script: RAY_TRAIN_V2_ENABLED=1 python -m elastic_training.elastic_e2e --task="image_classification" --image_classification_data_format="parquet" --dataloader_type=ray_data --checkpoint_every_n_steps=100 --min_workers=8 --max_workers=32 --num_epochs=4
wait_for_nodes:
num_nodes: 1
variations:
- __suffix__: aws
alert: default
###############
# RLlib tests #
###############
# -----------------
# RLlib - APPO test
# -----------------
- name: rllib_learning_tests_pong_appo_torch
python: "3.10"
group: RLlib tests
working_dir: rllib_tests
frequency: nightly
team: rllib
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
post_build_script: byod_rllib.sh
runtime_env:
- RLLIB_TEST_NO_JAX_IMPORT=1
cluster_compute: 1gpu_16cpus.yaml
run:
timeout: 1500 # expected 1000 seconds
script: python example_algorithms/appo/pong_appo.py --num-learners=1 --num-env-runners=12 --as-release-test
########################
# Core Nightly Tests
########################
- name: shuffle_100gb
python: "3.10"
group: core-multi-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: shuffle/shuffle_compute_multi.yaml
run:
timeout: 3000
script: python shuffle/shuffle_test.py --num-partitions=200 --partition-size=500e6
wait_for_nodes:
num_nodes: 4
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: shuffle/shuffle_compute_multi_gce.yaml
- name: stress_test_placement_group
python: "3.10"
group: core-multi-test
working_dir: nightly_tests
env: aws_perf
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/placement_group_tests_compute.yaml
run:
timeout: 7200
script: python stress_tests/test_placement_group.py
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/placement_group_tests_compute_gce.yaml
- name: autoscaling_shuffle_1tb_1000_partitions
python: "3.10"
group: core-multi-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: shuffle/shuffle_compute_autoscaling.yaml
run:
timeout: 4000
script: python shuffle/shuffle_test.py --num-partitions=1000 --partition-size=1e9
--no-streaming
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: shuffle/shuffle_compute_autoscaling_gce.yaml
- name: microbenchmark
python: "3.10"
group: core-daily-test
team: core
frequency: nightly
env: aws_perf
working_dir: microbenchmark
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_64.yaml
run:
timeout: 1800
script: OMP_NUM_THREADS=64 RAY_ADDRESS=local python run_microbenchmark.py
variations:
- __suffix__: aws
repeated_run: 5
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_64_gce.yaml
- __suffix__: aws.py312
frequency: weekly
python: "3.12"
- name: compiled_graphs
python: "3.10"
group: core-daily-test
team: core
frequency: manual
working_dir: microbenchmark
cluster:
anyscale_sdk_2026: true
cluster_compute: tpl_64.yaml
run:
timeout: 1800
script: OMP_NUM_THREADS=64 RAY_ADDRESS=local python run_microbenchmark.py --experimental
- name: compiled_graphs_GPU
python: "3.10"
group: core-daily-test
team: core
frequency: manual
working_dir: microbenchmark
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: experimental/compute_t4_gpu.yaml
run:
timeout: 1800
script: python experimental/compiled_graph_gpu_microbenchmark.py
- name: compiled_graphs_GPU_multinode
python: "3.10"
group: core-daily-test
team: core
frequency: manual
working_dir: microbenchmark
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: experimental/compute_gpu_2x1_aws.yaml
run:
timeout: 1800
script: python experimental/compiled_graph_gpu_microbenchmark.py --distributed
- name: "compiled_graphs_GPU_cu130_py{{python}}"
python: "{{python}}"
group: core-daily-test
team: core
frequency: manual
working_dir: microbenchmark
matrix:
setup:
python: ["3.10", "3.11", "3.12", "3.13"]
cluster:
anyscale_sdk_2026: true
byod:
type: gpu-cu130
python_depset: gpu_cu130_py{{python}}.lock
cluster_compute: experimental/compute_l4_gpu.yaml
run:
timeout: 1800
script: python experimental/compiled_graph_gpu_microbenchmark.py
- name: "compiled_graphs_GPU_multinode_cu130_py{{python}}"
python: "{{python}}"
group: core-daily-test
team: core
frequency: manual
working_dir: microbenchmark
matrix:
setup:
python: ["3.10", "3.11", "3.12", "3.13"]
cluster:
anyscale_sdk_2026: true
byod:
type: gpu-cu130
python_depset: gpu_cu130_py{{python}}.lock
cluster_compute: experimental/compute_l4_gpu_2x1_aws.yaml
run:
timeout: 1800
script: python experimental/compiled_graph_gpu_microbenchmark.py --distributed
- name: rdt_single_node_T4_microbenchmark
python: "3.10"
group: core-daily-test
team: core
frequency: nightly
working_dir: microbenchmark
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: experimental/compute_t4_gpu.yaml
run:
timeout: 1800
# NIXL currently only works on T4's for <100mb tensors so not enabling.
script: python experimental/rdt_single_node_microbenchmark.py
- name: rdt_single_node_A100_microbenchmark
python: "3.12"
group: core-daily-test
team: core
frequency: weekly
working_dir: microbenchmark
cluster:
anyscale_sdk_2026: true
byod:
type: llm-cu130 # llm image already has nixl
post_build_script: byod_llm_pin_cupy_cuda12x.sh # match cupy-cuda12x to ray-llm base lock (BYOD testdeps can float major)
runtime_env: # env vars for nixl
- UCX_TLS=all
- UCX_NET_DEVICES=all
cluster_compute: experimental/compute_a100_gpu.yaml
run:
timeout: 1800
script: python experimental/rdt_single_node_microbenchmark.py --enable_10gb --enable_nixl
# TODO(dayshah): Add multi-node benchmarks with actual hardware RDMA support
# - name: rdt_GPU_multinode
# python: "3.10"
# group: core-daily-test
# team: core
# frequency: nightly
# working_dir: microbenchmark
# cluster:
# byod:
# type: gpu
# cluster_compute: experimental/compute_gpu_2x1_aws.yaml
# run:
# timeout: 1800
# script: python experimental/rdt_microbenchmark.py --distributed
- name: benchmark_worker_startup
python: "3.10"
group: core-daily-test
team: core
frequency: nightly
working_dir: benchmark-worker-startup
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
cluster_compute: only_head_node_1gpu_64cpu.yaml
run:
timeout: 7200
script: python benchmark_worker_startup.py
--num_cpus_in_cluster 64
--num_gpus_in_cluster 64
--num_tasks_or_actors_per_run 64
--num_measurements_per_configuration 5
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: only_head_node_1gpu_64cpu_gce.yaml
- name: dask_on_ray_100gb_sort
group: core-daily-test
working_dir: nightly_tests
frequency: manual # was nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: dask_on_ray/dask_on_ray_sort_compute_template.yaml
run:
timeout: 7200
script: python dask_on_ray/dask_on_ray_sort.py --nbytes 100_000_000_000 --npartitions
200 --num-nodes 1 --ray --data-dir /tmp/ray --file-path /tmp/ray
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: dask_on_ray/dask_on_ray_sort_compute_template_gce.yaml
- name: stress_test_state_api_scale
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_MAX_LIMIT_FROM_API_SERVER=1000000000
- RAY_MAX_LIMIT_FROM_DATA_SOURCE=1000000000
cluster_compute: stress_tests/stress_tests_compute_large.yaml
run:
timeout: 4200
script: python stress_tests/test_state_api_scale.py
wait_for_nodes:
num_nodes: 7
smoke_test:
frequency: nightly
cluster:
anyscale_sdk_2026: true
app_config: stress_tests/state_api_app_config.yaml
cluster_compute: stress_tests/smoke_test_compute.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 5
script: python stress_tests/test_state_api_scale.py --smoke-test
variations:
- __suffix__: aws
- __suffix__: aws.py312
frequency: manual
python: "3.12"
smoke_test:
frequency: nightly-3x
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/stress_tests_compute_large_gce.yaml
smoke_test:
frequency: manual
cluster:
cluster_compute: stress_tests/smoke_test_compute_gce.yaml
- name: shuffle_20gb_with_state_api
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_MAX_LIMIT_FROM_API_SERVER=1000000000
- RAY_MAX_LIMIT_FROM_DATA_SOURCE=1000000000
cluster_compute: shuffle/shuffle_compute_single.yaml
run:
timeout: 1000
script: python stress_tests/test_state_api_with_other_tests.py
nightly_tests/shuffle/shuffle_test.py --test-args="--num-partitions=100 --partition-size=200e6"
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: shuffle/shuffle_compute_single_gce.yaml
- name: stress_test_many_tasks
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
env: aws_perf
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/stress_tests_compute.yaml
run:
timeout: 14400
wait_for_nodes:
num_nodes: 101
script: python stress_tests/test_many_tasks.py
smoke_test:
frequency: nightly
cluster:
anyscale_sdk_2026: true
app_config: stress_tests/stress_tests_app_config.yaml
cluster_compute: stress_tests/smoke_test_compute.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 5
script: python stress_tests/test_many_tasks.py --num-nodes=4 --smoke-test
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/stress_tests_compute_gce.yaml
smoke_test:
frequency: manual
cluster:
cluster_compute: stress_tests/smoke_test_compute_gce.yaml
- name: stress_test_dead_actors
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
env: aws_perf
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/stress_tests_compute.yaml
run:
timeout: 7200
wait_for_nodes:
num_nodes: 101
script: python stress_tests/test_dead_actors.py
smoke_test:
frequency: nightly
cluster:
anyscale_sdk_2026: true
app_config: stress_tests/stress_tests_app_config.yaml
cluster_compute: stress_tests/smoke_test_compute.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 5
script: python stress_tests/test_dead_actors.py --num-nodes=4 --num-parents=3
--num-children=3
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/stress_tests_compute_gce.yaml
smoke_test:
frequency: manual
cluster:
cluster_compute: stress_tests/smoke_test_compute_gce.yaml
# The full test is not stable, so run the smoke test only.
# See https://github.com/ray-project/ray/issues/23244.
- name: threaded_actors_stress_test
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/smoke_test_compute.yaml
run:
timeout: 3600
script: python stress_tests/test_threaded_actors.py --test-runtime 1800 --kill-interval_s
30
wait_for_nodes:
num_nodes: 5
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/smoke_test_compute_gce.yaml
# - name: threaded_actors_stress_test
# group: core-daily-test
# working_dir: nightly_tests
#
# frequency: nightly
# team: core
# cluster:
# cluster_compute: stress_tests/stress_test_threaded_actor_compute.yaml
#
# run:
# timeout: 7200
# script: python stress_tests/test_threaded_actors.py --test-runtime 3600 --kill-interval_s
# 60
#
# wait_for_nodes:
# num_nodes: 201
# timeout: 600
#
# smoke_test:
# frequency: nightly
# cluster:
# app_config: stress_tests/stress_tests_app_config.yaml
# cluster_compute: stress_tests/smoke_test_compute.yaml
#
# run:
# timeout: 3600
# script: python stress_tests/test_threaded_actors.py --test-runtime 1800 --kill-interval_s
# 30
#
# wait_for_nodes:
# num_nodes: 5
# timeout: 600
- name: stress_test_many_runtime_envs
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/smoke_test_compute.yaml
run:
timeout: 14400
wait_for_nodes:
num_nodes: 5
script: python stress_tests/test_many_runtime_envs.py --num_runtime_envs=100 --num_tasks=10000
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/smoke_test_compute_gce.yaml
smoke_test:
frequency: manual
- name: single_node_oom
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
# Lower the memory usage threshold at which the Ray memory monitor will kill
# running tasks so that it does not compete with the system OOM killer.
- RAY_memory_usage_threshold=0.7
cluster_compute: stress_tests/stress_tests_single_node_oom_compute.yaml
run:
# The script parameters are tuned to run for ~30min.
timeout: 3600
# The memory allocated per task is tuned along with the `RAY_memory_usage_threshold` setting above
# to trigger the Ray memory monitor to kick in before the Ray worker cgroup OOMs.
script: python stress_tests/test_parallel_tasks_memory_pressure.py --num-tasks 64 --mem-pct-per-task .5
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: stress_tests/stress_tests_single_node_oom_compute_gce.yaml
- name: dask_on_ray_1tb_sort
group: core-daily-test
working_dir: nightly_tests
frequency: manual # was nightly-3x
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: dask_on_ray/1tb_sort_compute.yaml
run:
timeout: 7200
script: python dask_on_ray/dask_on_ray_sort.py --nbytes 1_000_000_000_000 --npartitions
1000 --num-nodes 31 --ray --data-dir /tmp/ray --s3-bucket core-nightly-test
wait_for_nodes:
num_nodes: 32
- name: many_nodes_actor_test_on_v2
python: "3.10"
group: core-daily-test
working_dir: benchmarks
frequency: nightly-3x
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: distributed/many_nodes_tests/compute_config.yaml
run:
timeout: 3600
# 2cpus per node x 1000 nodes / 0.2 cpus per actor = 10k
# 2cpus per node x 2000 nodes / 0.2 cpus per actor = 20k
script: python distributed/many_nodes_tests/actor_test.py --no-wait --cpus-per-actor=0.2 --total-actors 10000 20000
wait_for_nodes:
num_nodes: 500
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: distributed/many_nodes_tests/compute_config_gce.yaml
#- name: many_nodes_multi_master_test
# group: core-daily-test
# working_dir: nightly_tests
#
# frequency: nightly-3x
# team: core
# cluster:
# cluster_compute: many_nodes_tests/compute_config.yaml
#
# run:
# timeout: 7200
# script: python many_nodes_tests/multi_master_test.py
# wait_for_nodes:
# num_nodes: 251
#
- name: pg_autoscaling_regression_test
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: placement_group_tests/compute.yaml
run:
timeout: 1200
script: python placement_group_tests/pg_run.py
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: placement_group_tests/compute_gce.yaml
- name: placement_group_performance_test
python: "3.10"
group: core-daily-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: placement_group_tests/pg_perf_test_compute.yaml
run:
timeout: 1200
script: python placement_group_tests/placement_group_performance_test.py
wait_for_nodes:
num_nodes: 5
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: placement_group_tests/pg_perf_test_compute_gce.yaml
#########################
# Core Scalability Tests
#########################
- name: single_node
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
env: aws_perf
cluster:
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: single_node.yaml
anyscale_sdk_2026: true
run:
timeout: 12000
prepare: sleep 0
script: python single_node/test_single_node.py
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: single_node_gce.yaml
- name: object_store
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: object_store.yaml
run:
timeout: 3600
script: python object_store/test_object_store.py
wait_for_nodes:
num_nodes: 50
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: object_store_gce.yaml
- name: callback_throughput
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: object_store/callback_throughput.yaml
run:
timeout: 600
script: python object_store/test_callback_throughput.py
wait_for_nodes:
num_nodes: 11
variations:
- __suffix__: aws
- name: small_objects
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: object_store/small_objects.yaml
run:
timeout: 3600
script: python object_store/test_small_objects.py
wait_for_nodes:
num_nodes: 5
variations:
- __suffix__: aws
- name: large_objects
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: object_store/large_objects.yaml
run:
timeout: 3600
script: python object_store/test_large_objects.py
wait_for_nodes:
num_nodes: 10
variations:
- __suffix__: aws
- name: many_actors
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly-3x
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: distributed.yaml
run:
timeout: 3600
script: python distributed/test_many_actors.py
wait_for_nodes:
num_nodes: 65
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: distributed_gce.yaml
- name: many_actors_smoke_test
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: distributed_smoke_test.yaml
run:
timeout: 3600
script: SMOKE_TEST=1 python distributed/test_many_actors.py
wait_for_nodes:
num_nodes: 2
- name: many_tasks
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: distributed.yaml
run:
timeout: 3600
script: python distributed/test_many_tasks.py --num-tasks=10000
wait_for_nodes:
num_nodes: 65
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: distributed_gce.yaml
- name: many_pgs
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly-3x
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: distributed.yaml
run:
timeout: 3600
script: python distributed/test_many_pgs.py
wait_for_nodes:
num_nodes: 65
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
anyscale_sdk_2026: true
cluster_compute: distributed_gce.yaml
- name: many_pgs_smoke_test
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: distributed_smoke_test.yaml
run:
timeout: 3600
script: SMOKE_TEST=1 python distributed/test_many_pgs.py
wait_for_nodes:
num_nodes: 2
- name: many_nodes
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly-3x
team: core
env: aws_perf
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: many_nodes.yaml
run:
timeout: 3600
script: python distributed/test_many_tasks.py --num-tasks=1000
wait_for_nodes:
num_nodes: 250
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: many_nodes_gce.yaml
- name: scheduling_test_many_0s_tasks_many_nodes
python: "3.10"
group: core-scalability-test
working_dir: benchmarks
frequency: nightly
team: core
cluster:
byod:
runtime_env:
- LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
cluster_compute: scheduling.yaml
anyscale_sdk_2026: true
run:
timeout: 3600
script: python distributed/test_scheduling.py --total-num-task=1984000 --num-cpu-per-task=1
--task-duration-s=0 --total-num-actors=32 --num-actors-per-nodes=1
wait_for_nodes:
num_nodes: 32
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: scheduling_gce.yaml
# - name: scheduling_test_many_5s_tasks_single_node
# group: core-scalability-test
# working_dir: benchmarks
# frequency: nightly
# team: core
# cluster:
# cluster_compute: scheduling.yaml
# run:
# timeout: 3600
# script: python distributed/test_scheduling.py --total-num-task=1984000 --num-cpu-per-task=1
# --task-duration-s=5 --total-num-actors=1 --num-actors-per-nodes=1
# wait_for_nodes:
# num_nodes: 32
# timeout: 600
# - name: scheduling_test_many_5s_tasks_many_nodes
# group: core-scalability-test
# working_dir: benchmarks
# frequency: nightly
# team: core
# cluster:
# cluster_compute: scheduling.yaml
# run:
# timeout: 3600
# script: python distributed/test_scheduling.py --total-num-task=1984000 --num-cpu-per-task=1
# --task-duration-s=5 --total-num-actors=32 --num-actors-per-nodes=1
# wait_for_nodes:
# num_nodes: 32
# timeout: 600
##################
# Core Chaos tests
##################
- name: chaos_many_tasks_baseline
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
script: python chaos_test/test_chaos.py --workload=tasks --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_many_tasks_kill_raylet
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start
script: python chaos_test/test_chaos.py --workload=tasks
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_many_tasks_terminate_instance
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start --chaos TerminateEC2Instance
script: python chaos_test/test_chaos.py --workload=tasks
variations:
- __suffix__: aws
- name: chaos_many_tasks_iptable_failure_injection
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_health_check_period_ms=10000
- RAY_health_check_timeout_ms=100000
- RAY_health_check_failure_threshold=10
- RAY_gcs_rpc_server_connect_timeout_s=60
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
script: >
python simulate_cross_az_network_failure.py --network-failure-interval 60 --network-failure-duration 5 --command python chaos_test/test_chaos.py --workload=tasks --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_many_actors_baseline
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 4200
wait_for_nodes:
num_nodes: 10
script: python chaos_test/test_chaos.py --workload=actors --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_many_actors_kill_raylet
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 4200
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start
script: python chaos_test/test_chaos.py --workload=actors
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_many_actors_terminate_instance
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 4200
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start --chaos TerminateEC2Instance
script: python chaos_test/test_chaos.py --workload=actors
variations:
- __suffix__: aws
- name: chaos_many_actors_iptable_failure_injection
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_health_check_period_ms=10000
- RAY_health_check_timeout_ms=100000
- RAY_health_check_failure_threshold=10
- RAY_gcs_rpc_server_connect_timeout_s=60
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 4200
wait_for_nodes:
num_nodes: 10
script: >
python simulate_cross_az_network_failure.py --network-failure-interval 60 --network-failure-duration 5 --command python chaos_test/test_chaos.py --workload=actors --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_streaming_generator_baseline
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
script: python chaos_test/test_chaos.py --workload=streaming --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_streaming_generator_kill_raylet
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start --max-to-kill 10
script: python chaos_test/test_chaos.py --workload=streaming
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_streaming_generator_terminate_instance
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start --chaos TerminateEC2Instance --max-to-kill 10
script: python chaos_test/test_chaos.py --workload=streaming
variations:
- __suffix__: aws
- name: chaos_streaming_generator_iptable_failure_injection
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_health_check_period_ms=10000
- RAY_health_check_timeout_ms=100000
- RAY_health_check_failure_threshold=10
- RAY_gcs_rpc_server_connect_timeout_s=60
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
script: >
python simulate_cross_az_network_failure.py --network-failure-interval 60 --network-failure-duration 5 --command python chaos_test/test_chaos.py --workload=streaming --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_object_ref_borrowing_baseline
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
script: python chaos_test/test_chaos.py --workload=borrowing --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_object_ref_borrowing_kill_raylet
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start
script: python chaos_test/test_chaos.py --workload=borrowing
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
- name: chaos_object_ref_borrowing_terminate_instance
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
prepare: python setup_chaos.py --no-start --chaos TerminateEC2Instance
script: python chaos_test/test_chaos.py --workload=borrowing
variations:
- __suffix__: aws
- name: chaos_object_ref_borrowing_iptable_failure_injection
python: "3.10"
group: core-nightly-test
working_dir: nightly_tests
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
runtime_env:
- RAY_health_check_period_ms=10000
- RAY_health_check_timeout_ms=100000
- RAY_health_check_failure_threshold=10
- RAY_gcs_rpc_server_connect_timeout_s=60
cluster_compute: chaos_test/compute_template.yaml
run:
timeout: 3600
wait_for_nodes:
num_nodes: 10
script: >
python simulate_cross_az_network_failure.py --network-failure-interval 60 --network-failure-duration 5 --command python chaos_test/test_chaos.py --workload=borrowing --disable-resource-killer
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: chaos_test/compute_template_gce.yaml
#####################
# Observability tests
#####################
- name: agent_stress_test
python: "3.10"
group: core-observability-test
working_dir: dashboard
frequency: nightly
team: core
cluster:
anyscale_sdk_2026: true
byod:
type: gpu
runtime_env:
- RAY_INTERNAL_MEM_PROFILE_COMPONENTS=dashboard_agent
post_build_script: byod_agent_stress_test.sh
cluster_compute: agent_stress_compute.yaml
run:
timeout: 14400
script: python mem_check.py --working-dir .
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: agent_stress_compute_gce.yaml
- name: k8s_serve_ha_test
group: k8s-test
working_dir: k8s_tests
# Failing since Oct 2024.
# https://github.com/ray-project/ray/issues/36190
frequency: manual
team: serve
cluster:
anyscale_sdk_2026: true
cluster_compute: compute_tpl.yaml
run:
timeout: 28800 # 8h
prepare: bash prepare.sh
script: python run_gcs_ft_on_k8s.py
- name: azure_cluster_launcher
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
# TODO: the test seems to be leaking resources, and will
# start failing over time; needs more investigation.
frequency: manual
team: clusters
cluster:
byod:
post_build_script: byod_azure_cluster_launcher.sh
cluster_compute: azure/tests/azure_compute.yaml
run:
timeout: 2400
script: bash release/azure_docker_login.sh && python -I launch_and_verify_cluster.py azure/tests/azure-cluster.yaml --num-expected-nodes 3 --retries 10
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python -I launch_and_verify_cluster.py azure/tests/azure-cluster.yaml --num-expected-nodes 3 --retries 10
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python -I launch_and_verify_cluster.py azure/tests/azure-cluster.yaml --num-expected-nodes 3 --retries 10
- name: aws_cluster_launcher
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
frequency: nightly
team: clusters
cluster:
cluster_compute: aws/tests/aws_compute.yaml
run:
timeout: 2400
script: python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10
- name: aws_cluster_launcher_nightly_image
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
frequency: manual
team: clusters
cluster:
cluster_compute: aws/tests/aws_compute.yaml
run:
timeout: 2400
script: python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override nightly
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override nightly
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override nightly
- name: aws_cluster_launcher_latest_image
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
frequency: manual
team: clusters
cluster:
cluster_compute: aws/tests/aws_compute.yaml
run:
timeout: 2400
script: python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override latest
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override latest
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override latest
- name: aws_cluster_launcher_release_image
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
frequency: manual
team: clusters
cluster:
cluster_compute: aws/tests/aws_compute.yaml
run:
timeout: 2400
script: python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override commit
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override commit
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python launch_and_verify_cluster.py aws/tests/aws_cluster.yaml --num-expected-nodes 2 --retries 10 --docker-override commit
- name: aws_cluster_launcher_minimal
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
frequency: nightly
team: clusters
cluster:
cluster_compute: aws/tests/aws_compute.yaml
run:
timeout: 1200
script: python launch_and_verify_cluster.py aws/example-minimal.yaml
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python launch_and_verify_cluster.py aws/example-minimal.yaml
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python launch_and_verify_cluster.py aws/example-minimal.yaml
- name: aws_cluster_launcher_full
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
frequency: nightly
team: clusters
cluster:
cluster_compute: aws/tests/aws_compute.yaml
run:
timeout: 3000
script: python launch_and_verify_cluster.py aws/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override latest
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 python launch_and_verify_cluster.py aws/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override latest
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 python launch_and_verify_cluster.py aws/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override latest
- name: gcp_cluster_launcher_minimal
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
env: gce
frequency: nightly
team: clusters
cluster:
cluster_compute: gcp/tests/single_node_32_cpu_gce.yaml
run:
timeout: 1200
script: python launch_and_verify_cluster.py gcp/example-minimal-pinned.yaml
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-minimal-pinned.yaml
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-minimal-pinned.yaml
- name: gcp_cluster_launcher_full
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
env: gce
frequency: nightly
team: clusters
cluster:
cluster_compute: gcp/tests/single_node_32_cpu_gce.yaml
run:
timeout: 4800
script: python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 30
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 30 --docker-override latest
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 30 --docker-override latest
- name: gcp_cluster_launcher_latest_image
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
env: gce
frequency: manual
team: clusters
cluster:
cluster_compute: gcp/tests/single_node_32_cpu_gce.yaml
run:
timeout: 3600
script: python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override latest
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override latest
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override latest
- name: gcp_cluster_launcher_nightly_image
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
env: gce
frequency: manual
team: clusters
cluster:
cluster_compute: gcp/tests/single_node_32_cpu_gce.yaml
run:
timeout: 3600
script: python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override nightly
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override nightly
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override nightly
- name: gcp_cluster_launcher_release_image
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
env: gce
frequency: manual
team: clusters
cluster:
cluster_compute: gcp/tests/single_node_32_cpu_gce.yaml
run:
timeout: 3600
script: python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override commit
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override commit
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-full.yaml --num-expected-nodes 2 --retries 20 --docker-override commit
- name: gcp_cluster_launcher_gpu_docker
python: "3.10"
group: cluster-launcher-test
working_dir: ../python/ray/autoscaler/
env: gce
frequency: weekly
team: clusters
cluster:
cluster_compute: gcp/tests/single_node_32_cpu_gce.yaml
run:
timeout: 1200
script: python launch_and_verify_cluster.py gcp/example-gpu-docker.yaml
variations:
- __suffix__: v1
run:
script: RAY_UP_enable_autoscaler_v2=0 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-gpu-docker.yaml
- __suffix__: v2
run:
script: RAY_UP_enable_autoscaler_v2=1 RAY_TRIM_AUTOSCALER_SSH_KEYS=1 python launch_and_verify_cluster.py gcp/example-gpu-docker.yaml
- name: autoscaler_aws
python: "3.10"
group: autoscaler-test
working_dir: autoscaling_tests
frequency: nightly
team: core
cluster:
cluster_compute: aws.yaml
run:
timeout: 1800
script: python run.py
##############
# LLM Serve
##############
# Runs performance benchmark tests against vLLM service
- name: llm_serve_llama_3dot1_8B_quantized_tp_1
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1.yaml --run-vllm-profiler --run-serve-llm-profiler
- name: llm_serve_llama_3dot1_8B_quantized_tp_1_direct_streaming
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1.yaml --run-vllm-profiler --run-serve-llm-profiler
# Direct streaming with the prefix-cache-aware request router. Guards #64326,
# where a body-aware router got no routing key on the direct-streaming path.
- name: llm_serve_llama_3dot1_8B_quantized_tp_1_direct_streaming_prefix_cache
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1_prefix_cache.yaml
# Runs performance benchmark tests against vLLM service
- name: llm_serve_llama_3dot1_8B_tp_2
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_tp2.yaml --run-vllm-profiler --run-serve-llm-profiler
- name: llm_serve_llama_3dot1_8B_tp_2_direct_streaming
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_tp2.yaml --run-vllm-profiler --run-serve-llm-profiler
- name: llm_serve_multi_node
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_USE_COMPACT_SCHEDULING_STRATEGY=1 # For test_llm_serve_prefill_decode_with_data_parallelism
anyscale_sdk_2026: true
cluster_compute: llm_2x_4xl4.yaml
run:
timeout: 3600
script: >
pytest -sv test_llm_serve_multi_node_integration.py
- name: llm_serve_multi_node_direct_streaming
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_USE_COMPACT_SCHEDULING_STRATEGY=1 # For test_llm_serve_prefill_decode_with_data_parallelism
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
anyscale_sdk_2026: true
cluster_compute: llm_2x_4xl4.yaml
run:
timeout: 3600
script: >
pytest -sv test_llm_serve_multi_node_integration.py
- name: llm_serve_dp_engine_fault
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_2x_4xl4.yaml
run:
timeout: 3600
script: >
pytest -sv test_llm_serve_dp_engine_fault.py
- name: llm_serve_llama_3dot2_1B_no_accelerator
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_g5-4xlarge.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot2_1b_no_accelerator.yaml --run-serve-llm-profiler
- name: llm_serve_llama_3dot1_8B_lora
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_lora.yaml --timeout 900
- name: llm_serve_llama_3dot2_1B_s3
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot2_1b_s3.yaml --skip-hf-token true
- name: llm_serve_correctness
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: pytest -vs test_llm_serve_correctness.py
- name: llm_serve_vllm_integration_tests
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: pytest -vs test_llm_serve_integration.py test_llm_serve_fault_tolerance.py
- name: llm_serve_vllm_integration_tests_direct_streaming
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: pytest -vs test_llm_serve_integration.py test_llm_serve_fault_tolerance.py
- name: llm_serve_sleep_wakeup
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: pytest -vs test_llm_serve_sleep_wakeup.py
- name: llm_serve_pause_resume
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: pytest -vs test_llm_serve_pause_resume.py
- name: llm_serve_rlhf
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python test_llm_serve_rlhf.py
- name: llm_serve_llama_3dot1_8B_quantized_tp1_1p1d
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1_1p1d.yaml --skip-hf-token true
- name: llm_serve_llama_3dot1_8B_quantized_tp1_1p1d_direct_streaming
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1_1p1d.yaml --skip-hf-token true
- name: llm_serve_llama_3dot1_8B_quantized_tp1_2p6d
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1_2p6d.yaml --skip-hf-token true
- name: llm_serve_llama_3dot1_8B_quantized_tp1_2p6d_direct_streaming
frequency: nightly
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1_2p6d.yaml --skip-hf-token true
- name: llm_serve_llama_3dot1_8B_quantized_tp1_2p6d_lmcache
frequency: manual # todo(ray-llm): fix this test with new/old lmcache version and new vllm version and re-enable it.
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
post_build_script: byod_llm_lmcache_test.sh
anyscale_sdk_2026: true
cluster_compute: llm_auto_select_worker.yaml
# NOTE: Important for getting the correct secrets
cloud_id: cld_wy5a6nhazplvu32526ams61d98
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
long_running: false
script: python run_llm_serve_test_and_bms.py --serve-config-file configs/serve_llama_3dot1_8b_quantized_tp1_2p6d_lmcache.yaml --skip-hf-token true
- name: llm_serve_sglang_e2e
frequency: manual
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/serve
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES=1
post_build_script: byod_llm_sglang_test.sh
anyscale_sdk_2026: true
cluster_compute: llm_four_L4_gpu_head_node.yaml
run:
timeout: 3600
script: pytest -vs test_llm_serve_sglang.py
- name: llm_serve_kv_router
frequency: manual
python: "3.12"
group: llm-serve
team: llm
working_dir: llm_tests/kv_router_test
cluster:
byod:
type: llm-cu130
runtime_env:
- RAY_SERVE_LLM_ENABLE_DIRECT_STREAMING=1
- RAY_SERVE_ENABLE_HA_PROXY=1
- RAY_SERVE_DEFAULT_HTTP_HOST=0.0.0.0
post_build_script: byod_llm_kv_router_test.sh
anyscale_sdk_2026: true
# Kept in this working_dir rather than referenced across dirs
# so it ships in the test's runfiles.
cluster_compute: llm_4xl4.yaml
run:
timeout: 3600
script: pytest -vs .
##############
# LLM Batch
##############
- name: llm_batch_vllm
frequency: nightly
python: "3.12"
group: llm-batch
team: llm
working_dir: llm_tests/batch
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_4xl4.yaml
# NOTE: Important for getting the correct secrets
cloud: serve_release_tests_cloud
project_id: prj_lhlrf1u5yv8qz9qg3xzw8fkiiq
run:
timeout: 3600
script: >
pytest -sv test_batch_vllm.py
- name: llm_batch_sglang_llama
frequency: nightly
python: "3.12"
group: llm-batch
team: llm
working_dir: llm_tests/batch
cluster:
byod:
type: llm-cu130
post_build_script: byod_llm_sglang_test.sh
anyscale_sdk_2026: true
cluster_compute: llm_4xl4.yaml
run:
timeout: 3600
script: >
pytest -sv test_batch_sglang.py
- name: llm_batch_vllm_multi_node
frequency: nightly
python: "3.12"
group: llm-batch
team: llm
working_dir: llm_tests/batch
cluster:
byod:
type: llm-cu130
anyscale_sdk_2026: true
cluster_compute: llm_2x_4xl4.yaml
run:
timeout: 3600
script: >
pytest -sv test_batch_multi_node_vllm.py
- name: llm_batch_single_node_baseline_benchmark
python: "3.12"
group: llm-batch
working_dir: llm_tests/batch
frequency: nightly
team: llm
cluster:
byod:
runtime_env:
- VLLM_DISABLE_COMPILE_CACHE=1
type: llm-cu130
post_build_script: byod_llm_single_node_baseline_benchmark.sh
python_depset: llm_batch/llm_batch_single_node_benchmark_py312_cu130.lock
anyscale_sdk_2026: true
cluster_compute: llm_single_node_benchmark_l4.yaml
run:
timeout: 3600
script: pytest -v test_batch_single_node_vllm.py::test_single_node_baseline_benchmark
#######################
# Ray examples tests
#######################
- name: video_analysis_pipeline # do not use dashes (regex sensitive)
frequency: weekly
python: "3.10"
group: ray-examples
team: serve
working_dir: //doc/source/serve/tutorials/video-analysis
cluster:
byod:
type: cpu
post_build_script: byod_serve_video_analysis.sh
cluster_compute: ci/aws.yaml
run:
timeout: 3600
script: bash ci/tests.sh # relative to working_dir
variations:
- __suffix__: aws # uses default specs above
# probably wont work on gce as tests depend on s3 access
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: ci/gce.yaml # relative to working_dir
- name: transformers_reinforcement_learning # do not use dashes (regex sensitive)
python: "3.10"
frequency: weekly
group: ray-examples
team: ml
working_dir: //doc/source/train/examples/transformers/transformer_reinforcement_learning
cluster:
byod:
type: gpu
post_build_script: byod_huggingface_trl.sh # release/ray_release/byod/
cluster_compute: ci/aws.yaml # relative to working_dir
run:
timeout: 3600
script: bash ci/tests.sh # relative to working_dir
variations:
- __suffix__: aws
- __suffix__: gce
env: gce
frequency: manual
cluster:
cluster_compute: ci/gce.yaml # relative to working_dir