steps:

- label: "Simple · Diffusion & Model Executor Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export VLLM_ROCM_USE_AITER=0
    # ignore test_teacache_extractors.py because it use rocm gemm kernel from vLLM
    # that is not supported on CPU
    - "timeout 40m pytest -sv tests/diffusion tests/model_executor -m 'core_model and cpu' --ignore=tests/diffusion/cache/test_teacache_extractors.py --cov=vllm_omni --cov-report=term-missing:skip-covered --cov-report=xml"

- label: "Simple · Other Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export VLLM_ROCM_USE_AITER=0
    # ignore test_teacache_extractors.py because it use rocm gemm kernel from vLLM
    # that is not supported on CPU
    - "timeout 40m pytest -sv tests/diffusion tests/model_executor -m 'core_model and cpu' --ignore=tests/diffusion/cache/test_teacache_extractors.py --cov=vllm_omni --cov-report=term-missing:skip-covered --cov-report=xml"

- label: "Voxtral TTS CUDA Unit Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - timeout 10m pytest -s -v tests/model_executor/models/voxtral_tts/test_cuda_graph_acoustic_transformer.py

- label: "Diffusion · Batch Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - timeout 20m pytest -sv tests/diffusion/batching -m 'core_model and cuda' --run-level "core_model"

- label: "Custom Pipeline Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - timeout 20m pytest -s -v tests/e2e/offline_inference/custom_pipeline/ -m "core_model"

- label: "Diffusion Model CPU offloading Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export VLLM_LOGGING_LEVEL=DEBUG
    - export VLLM_WORKER_MULTIPROC_METHOD=spawn
    - |
      timeout 20m bash -c '
        set +e
        pytest -s -v tests/diffusion/offloader/test_diffusion_cpu_offload.py
        EXIT1=\$?
        pytest -s -v tests/diffusion/offloader/test_diffusion_layerwise_offload.py
        EXIT2=\$?
        exit \$((EXIT1 | EXIT2))
      '

## ISSUE depends on `diffusers` package: https://github.com/huggingface/diffusers/issues/13274
# - label: "Audio Generation Model Test"
#   agent_pool: mi325_1
#   depends_on: amd-build
#   mirror_hardwares: [amdproduction]
#   grade: Blocking
#   commands:
#     - export GPU_ARCHS=gfx942
#     - export VLLM_LOGGING_LEVEL=DEBUG
#     - export VLLM_WORKER_MULTIPROC_METHOD=spawn
#     - timeout 20m pytest -s -v tests/e2e/offline_inference/test_stable_audio_expansion.py -m "advanced_model and diffusion and L4" --run-level advanced_model

- label: "Diffusion Cache Backend Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export GPU_ARCHS=gfx942
    - export VLLM_LOGGING_LEVEL=DEBUG
    - export VLLM_WORKER_MULTIPROC_METHOD=spawn
    - timeout 15m pytest -s -v -m "core_model and cache and diffusion and not distributed_cuda and L4"

- label: "Diffusion Sequence Parallelism Test"
  agent_pool: mi325_2
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export VLLM_LOGGING_LEVEL=DEBUG
    - export VLLM_WORKER_MULTIPROC_METHOD=spawn
    - timeout 20m pytest -s -v tests/diffusion/distributed/test_sequence_parallel.py -m core_model

- label: "Diffusion GPU Worker Test"
  agent_pool: mi325_2
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - timeout 20m pytest -s -v tests/diffusion/test_diffusion_worker.py

- label: "Diffusion · Model Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - timeout 15m pytest -sv tests/diffusion/models/ -m 'core_model and cuda' --run-level "core_model"

- label: "Diffusion · Wan22 Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - |
      timeout 40m bash -c "
        export VLLM_TEST_CLEAN_GPU_MEMORY=1
        export VLLM_IMAGE_FETCH_TIMEOUT=60
        pytest -s -v tests/e2e/online_serving/test_wan22_t2v.py -m 'core_model' --run-level 'core_model'
      "

- label: "Engine Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export VLLM_WORKER_MULTIPROC_METHOD=spawn
    - |
      timeout 15m bash -c '
              pytest -s -v tests/engine/test_async_omni_engine_abort.py
      '

# - label: "Omni Model Test Qwen3-Omni"
#   agent_pool: mi325_2
#   depends_on: amd-build
#   mirror_hardwares: [amdproduction]
#   grade: Blocking
#   commands:
#     - export VLLM_LOGGING_LEVEL=DEBUG
#     - export VLLM_WORKER_MULTIPROC_METHOD=spawn
#     - timeout 10m pytest -s -v tests/e2e/offline_inference/test_qwen3_omni.py
#     - timeout 20m pytest -s -v tests/e2e/online_serving/test_qwen3_omni.py -m "core_model" --run-level "core_model"

- label: "MiMo-Audio E2E Test with H100"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - |
      timeout 30m bash -c '
        export VLLM_LOGGING_LEVEL=DEBUG
        export VLLM_WORKER_MULTIPROC_METHOD=spawn
        pytest -s -v tests/e2e/online_serving/test_mimo_audio.py -m "core_model" --run-level "core_model"
      '

- label: "Qwen3-TTS E2E Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - export VLLM_LOGGING_LEVEL=DEBUG
    - export VLLM_WORKER_MULTIPROC_METHOD=spawn
    - export VLLM_ALLOW_LONG_MAX_MODEL_LEN="1"
    - timeout 30m pytest -s -v tests/e2e/online_serving/test_qwen3_tts_customvoice.py -m "core_model" --run-level "core_model"

- label: "Voxtral-TTS E2E Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - |
      timeout 20m bash -c '
        export VLLM_LOGGING_LEVEL=DEBUG
        export VLLM_WORKER_MULTIPROC_METHOD=spawn
        pytest -s -v tests/e2e/online_serving/test_voxtral_tts.py -m "advanced_model" --run-level "advanced_model"
        pytest -s -v tests/e2e/offline_inference/test_voxtral_tts.py -m "advanced_model" --run-level "advanced_model"
      '

# TODO: Bagel test on ROCm is very unstable. @tjtanaa
# Need to debug before reneable numerical changes across large PRs
# - label: "Bagel Text2Img Model Test"
#   agent_pool: mi325_1
#   depends_on: amd-build
#   mirror_hardwares: [amdproduction]
#   grade: Blocking
#   commands:
#     - export GPU_ARCHS=gfx942
#     - export VLLM_LOGGING_LEVEL=DEBUG
#     - export VLLM_WORKER_MULTIPROC_METHOD=spawn
#     - export VLLM_ROCM_USE_AITER_RMSNORM=0
#     - timeout 30m pytest -s -v tests/e2e/offline_inference/test_bagel.py -m "core_model" --run-level "core_model" -k "rocm"

# - label: "Bagel Img2Img Model Test"
#   agent_pool: mi325_1
#   depends_on: amd-build
#   mirror_hardwares: [amdproduction]
#   grade: Blocking
#   commands:
#     - export GPU_ARCHS=gfx942
#     - export VLLM_LOGGING_LEVEL=DEBUG
#     - export VLLM_WORKER_MULTIPROC_METHOD=spawn
#     - export VLLM_ROCM_USE_AITER_RMSNORM=0
#     - timeout 30m pytest -s -v tests/e2e/offline_inference/test_bagel.py -m "core_model" --run-level "core_model" -k "rocm"

# - label: "Bagel Online Serving Test"
#   agent_pool: mi325_1
#   depends_on: amd-build
#   mirror_hardwares: [amdproduction]
#   grade: Blocking
#   commands:
#     - export GPU_ARCHS=gfx942
#     - export VLLM_IMAGE_FETCH_TIMEOUT=60
#     - export VLLM_LOGGING_LEVEL=DEBUG
#     - export VLLM_WORKER_MULTIPROC_METHOD=spawn
#     - export VLLM_ROCM_USE_AITER_RMSNORM=0
#     - timeout 40m pytest -s -v tests/e2e/online_serving/test_bagel.py -m "core_model" --run-level "core_model" -k "rocm"

- label: "CosyVoice3-TTS E2E Test"
  agent_pool: mi325_1
  depends_on: amd-build
  mirror_hardwares: [amdproduction]
  grade: Blocking
  commands:
    - |
      timeout 20m bash -c '
        pytest -s -v tests/e2e/online_serving/test_cosyvoice3_tts_expansion.py -m "full_model" --run-level "core_model"
      '
