| 1 | group: Rust Frontend E2E |
| 2 | depends_on: |
| 3 | - image-build |
| 4 | steps: |
| 5 | - label: ":nvidia: (H200 MIG 18GB) Rust Frontend OpenAI Coverage" |
| 6 | key: rust-frontend-openai-coverage |
| 7 | timeout_in_minutes: 30 |
| 8 | device: h200_18gb |
| 9 | working_dir: "/vllm-workspace/tests" |
| 10 | source_file_dependencies: |
| 11 | - rust/ |
| 12 | - vllm/benchmarks/ |
| 13 | - vllm/entrypoints/openai/ |
| 14 | - vllm/entrypoints/serve/ |
| 15 | - vllm/v1/sample/ |
| 16 | - tests/utils.py |
| 17 | - tests/benchmarks/test_serve_cli.py |
| 18 | - tests/entrypoints/openai/chat_completion/test_chat_completion.py |
| 19 | - tests/entrypoints/openai/chat_completion/test_include_reasoning.py |
| 20 | - tests/entrypoints/openai/chat_completion/test_chat_logit_bias_validation.py |
| 21 | - tests/entrypoints/openai/chat_completion/test_serving_chat.py |
| 22 | |
| 23 | # - tests/entrypoints/openai/completion/test_prompt_validation.py |
| 24 | - tests/entrypoints/launchers/test_shutdown.py |
| 25 | - tests/entrypoints/openai/test_return_token_ids.py |
| 26 | - tests/entrypoints/serve/instrumentator/test_uds.py |
| 27 | - tests/v1/sample/test_logprobs_e2e.py |
| 28 | commands: |
| 29 | - export VLLM_USE_RUST_FRONTEND=1 |
| 30 | - export VLLM_WORKER_MULTIPROC_METHOD=spawn |
| 31 | - pytest -v -s benchmarks/test_serve_cli.py -k "not insecure and not (test_bench_serve and not test_bench_serve_chat)" |
| 32 | - pytest -v -s entrypoints/openai/chat_completion/test_chat_completion.py -k "not test_invalid_json_schema and not test_invalid_regex and not test_kv_transfer_prompt_token_ids_round_trip and not test_kv_transfer_prompt_token_ids_streaming" |
| 33 | - pytest -v -s entrypoints/openai/chat_completion/test_include_reasoning.py |
| 34 | - pytest -v -s entrypoints/openai/chat_completion/test_chat_logit_bias_validation.py -k "not multiple" |
| 35 | - pytest -v -s entrypoints/openai/chat_completion/test_serving_chat.py -k "test_chat_per_request_metrics_follow_server_flag or test_streaming_reasoning_usage_counts_across_deltas or test_completion_tokens_details" |
| 36 | |
| 37 | # - pytest -v -s entrypoints/openai/completion/test_prompt_validation.py -k "not prompt_embeds" |
| 38 | - pytest -v -s entrypoints/launchers/test_shutdown.py -k "not engine_failure and not test_abort_timeout_exits_quickly" |
| 39 | # test_comparison streams differently: Rust emits a separate first (prompt_token_ids) chunk and |
| 40 | # finish chunk without logprobs, while the test reads `logprobs.tokens` on every chunk. |
| 41 | - pytest -v -s entrypoints/openai/test_return_token_ids.py -k "not test_comparison" |
| 42 | - pytest -v -s entrypoints/serve/instrumentator/test_uds.py |
| 43 | - pytest -v -s v1/sample/test_logprobs_e2e.py -k "test_prompt_logprobs_e2e_server" |
| 44 | mirror: |
| 45 | amd: |
| 46 | label: ":amd: (MI355 DPX) Rust Frontend OpenAI Coverage" |
| 47 | dind: false |
| 48 | device: mi355_dpx |
| 49 | timeout_in_minutes: 35 |
| 50 | depends_on: |
| 51 | - image-build-amd |
| 52 | source_file_dependencies: |
| 53 | - rust/ |
| 54 | - vllm/benchmarks/ |
| 55 | - vllm/entrypoints/openai/ |
| 56 | - vllm/entrypoints/serve/ |
| 57 | - vllm/v1/sample/ |
| 58 | - tests/utils.py |
| 59 | - tests/benchmarks/test_serve_cli.py |
| 60 | - tests/entrypoints/openai/chat_completion/test_chat_completion.py |
| 61 | - tests/entrypoints/openai/chat_completion/test_include_reasoning.py |
| 62 | - tests/entrypoints/openai/chat_completion/test_chat_logit_bias_validation.py |
| 63 | - tests/entrypoints/openai/chat_completion/test_serving_chat.py |
| 64 | - tests/entrypoints/openai/completion/test_shutdown.py |
| 65 | - tests/entrypoints/openai/test_return_token_ids.py |
| 66 | - tests/entrypoints/openai/test_uds.py |
| 67 | - tests/v1/sample/test_logprobs_e2e.py |
| 68 | - vllm/platforms/rocm.py |
| 69 | |
| 70 | - label: ":nvidia: (H200 MIG 18GB) Rust Frontend Serve/Admin Coverage" |
| 71 | key: rust-frontend-serve-admin-coverage |
| 72 | timeout_in_minutes: 25 |
| 73 | device: h200_18gb |
| 74 | working_dir: "/vllm-workspace/tests" |
| 75 | source_file_dependencies: |
| 76 | - rust/ |
| 77 | - vllm/entrypoints/openai/ |
| 78 | - vllm/entrypoints/serve/ |
| 79 | - vllm/v1/engine/ |
| 80 | - tests/utils.py |
| 81 | - tests/entrypoints/serve/dev/rpc/test_collective_rpc.py |
| 82 | - tests/entrypoints/scale_out/token_in_token_out/test_serving_tokens.py |
| 83 | - tests/entrypoints/serve/instrumentator/test_basic.py |
| 84 | - tests/entrypoints/serve/instrumentator/test_metrics.py |
| 85 | # - tests/entrypoints/serve/dev/test_sleep.py |
| 86 | - tests/entrypoints/serve/tokenize/test_tokenization.py |
| 87 | commands: |
| 88 | - export VLLM_USE_RUST_FRONTEND=1 |
| 89 | - export VLLM_WORKER_MULTIPROC_METHOD=spawn |
| 90 | - PYTHONPATH=/vllm-workspace pytest -v -s entrypoints/serve/dev/rpc/test_collective_rpc.py |
| 91 | # server_load can be flaky under the Rust frontend; keep it excluded for now. |
| 92 | - pytest -v -s entrypoints/serve/instrumentator/test_basic.py -k "not server_load" |
| 93 | # test_generate_logprobs expects Python-style top_logprobs truncation (dedup sampled + cap at max(k, 1)). |
| 94 | - pytest -v -s entrypoints/scale_out/token_in_token_out/test_serving_tokens.py -k "not stream and not lora and not test_generate_logprobs and not stop_string_workflow" |
| 95 | - pytest -v -s entrypoints/serve/instrumentator/test_metrics.py -k "text and not show and not run_batch and not test_metrics_counts and not test_metrics_exist" |
| 96 | # - pytest -v -s entrypoints/serve/dev/test_sleep.py |
| 97 | # /tokenizer_info is not implemented in the Rust frontend (the CLI flag is accepted as a no-op). |
| 98 | - pytest -v -s entrypoints/serve/tokenize/test_tokenization.py -k "not tokenizer_info" |
| 99 | mirror: |
| 100 | amd: |
| 101 | label: ":amd: (MI355 DPX) Rust Frontend Serve/Admin Coverage" |
| 102 | dind: false |
| 103 | device: mi355_dpx |
| 104 | timeout_in_minutes: 30 |
| 105 | depends_on: |
| 106 | - image-build-amd |
| 107 | source_file_dependencies: |
| 108 | - rust/ |
| 109 | - vllm/entrypoints/openai/ |
| 110 | - vllm/entrypoints/serve/ |
| 111 | - vllm/v1/engine/ |
| 112 | - tests/utils.py |
| 113 | - tests/entrypoints/serve/dev/rpc/test_collective_rpc.py |
| 114 | - tests/entrypoints/scale_out/token_in_token_out/test_serving_tokens.py |
| 115 | - tests/entrypoints/serve/instrumentator/test_basic.py |
| 116 | - tests/entrypoints/serve/instrumentator/test_metrics.py |
| 117 | - tests/entrypoints/serve/tokenize/test_tokenization.py |
| 118 | - vllm/platforms/rocm.py |
| 119 | |
| 120 | - label: ":nvidia: (H200 MIG 18GB) Rust Frontend Core Correctness" |
| 121 | key: rust-frontend-core-correctness |
| 122 | timeout_in_minutes: 20 |
| 123 | device: h200_18gb |
| 124 | working_dir: "/vllm-workspace/tests" |
| 125 | source_file_dependencies: |
| 126 | - rust/ |
| 127 | - vllm/entrypoints/openai/ |
| 128 | - tests/utils.py |
| 129 | - tests/entrypoints/openai/correctness/test_lmeval.py |
| 130 | commands: |
| 131 | - export VLLM_USE_RUST_FRONTEND=1 |
| 132 | - export VLLM_WORKER_MULTIPROC_METHOD=spawn |
| 133 | - pytest -s entrypoints/openai/correctness/test_lmeval.py::test_lm_eval_accuracy_v1_engine |
| 134 | mirror: |
| 135 | amd: |
| 136 | label: ":amd: (MI355 DPX) Rust Frontend Core Correctness" |
| 137 | dind: false |
| 138 | device: mi355_dpx |
| 139 | timeout_in_minutes: 25 |
| 140 | depends_on: |
| 141 | - image-build-amd |
| 142 | source_file_dependencies: |
| 143 | - rust/ |
| 144 | - vllm/entrypoints/openai/ |
| 145 | - tests/utils.py |
| 146 | - tests/entrypoints/openai/correctness/test_lmeval.py |
| 147 | - vllm/platforms/rocm.py |
| 148 | |
| 149 | - label: ":nvidia: (H200 MIG 35GB) Rust Frontend Tool Use" |
| 150 | key: rust-frontend-tool-use |
| 151 | device: h200_35gb |
| 152 | timeout_in_minutes: 25 |
| 153 | working_dir: "/vllm-workspace/tests" |
| 154 | source_file_dependencies: |
| 155 | - rust/ |
| 156 | - vllm/entrypoints/openai/ |
| 157 | - vllm/tool_parsers/ |
| 158 | - tests/utils.py |
| 159 | - tests/tool_use/ |
| 160 | commands: |
| 161 | - export VLLM_USE_RUST_FRONTEND=1 |
| 162 | - export VLLM_WORKER_MULTIPROC_METHOD=spawn |
| 163 | - pytest -v -s tool_use --ignore=tool_use/mistral --models llama3.2 -k "not test_response_format_with_tool_choice_required and not test_parallel_tool_calls_false and not test_tool_call_and_choice" |
| 164 | mirror: |
| 165 | amd: |
| 166 | label: ":amd: (MI355 DPX) Rust Frontend Tool Use" |
| 167 | dind: false |
| 168 | device: mi355_dpx |
| 169 | timeout_in_minutes: 30 |
| 170 | depends_on: |
| 171 | - image-build-amd |
| 172 | source_file_dependencies: |
| 173 | - rust/ |
| 174 | - vllm/entrypoints/openai/ |
| 175 | - vllm/tool_parsers/ |
| 176 | - tests/utils.py |
| 177 | - tests/tool_use/ |
| 178 | - vllm/platforms/rocm.py |
| 179 | |
| 180 | - label: ":nvidia: (L4) Rust Frontend Distributed" |
| 181 | key: rust-frontend-distributed |
| 182 | timeout_in_minutes: 25 |
| 183 | device: l4 |
| 184 | num_devices: 4 |
| 185 | working_dir: "/vllm-workspace/tests" |
| 186 | source_file_dependencies: |
| 187 | - rust/ |
| 188 | - vllm/distributed/ |
| 189 | - "!vllm/distributed/kv_transfer/" |
| 190 | - vllm/engine/ |
| 191 | - vllm/v1/executor/ |
| 192 | - vllm/v1/engine/ |
| 193 | - vllm/v1/worker/ |
| 194 | - tests/utils.py |
| 195 | - tests/v1/distributed/test_dense_dp_world_size.py |
| 196 | - tests/v1/distributed/test_external_lb_dp.py |
| 197 | - tests/v1/distributed/test_hybrid_lb_dp.py |
| 198 | - tests/v1/distributed/test_internal_lb_dp.py |
| 199 | commands: |
| 200 | - export VLLM_USE_RUST_FRONTEND=1 |
| 201 | - export VLLM_WORKER_MULTIPROC_METHOD=spawn |
| 202 | - export NCCL_CUMEM_HOST_ENABLE=0 |
| 203 | - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_dense_dp_world_size.py |
| 204 | - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_internal_lb_dp.py -k "not 4 and not server_info" |
| 205 | - TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_external_lb_dp.py -k "not 4 and not server_info" |
| 206 | - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_hybrid_lb_dp.py -k "not 4 and not server_info" |
| 207 | mirror: |
| 208 | amd: |
| 209 | label: ":amd: (MI355) Rust Frontend Distributed" |
| 210 | dind: false |
| 211 | device: mi355_4 |
| 212 | timeout_in_minutes: 45 |
| 213 | env: |
| 214 | VLLM_ENGINE_READY_TIMEOUT_S: "1800" |
| 215 | depends_on: |
| 216 | - image-build-amd |
| 217 | source_file_dependencies: |
| 218 | - rust/ |
| 219 | - vllm/distributed/ |
| 220 | - "!vllm/distributed/kv_transfer/" |
| 221 | - vllm/engine/ |
| 222 | - vllm/v1/executor/ |
| 223 | - vllm/v1/engine/ |
| 224 | - vllm/v1/worker/ |
| 225 | - tests/utils.py |
| 226 | - tests/v1/distributed/test_dense_dp_world_size.py |
| 227 | - tests/v1/distributed/test_external_lb_dp.py |
| 228 | - tests/v1/distributed/test_hybrid_lb_dp.py |
| 229 | - tests/v1/distributed/test_internal_lb_dp.py |
| 230 | - vllm/platforms/rocm.py |