[CI] Add nightly Python 3.14 smoke test (#60456)

Signed-off-by: mgoin <mgoin64@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Misha Goin
2026-10-12 10:11:26 -07:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 12e6a585ae
commit 45bb710eca
2 changed files with 51 additions and 3 deletions
+11
View File
@@ -446,6 +446,17 @@ steps:
- setup.py
- vllm/platforms/rocm.py
- label: ":nvidia: (H200 MIG 18GB) Python 3.14 Smoke Nightly"
key: python-314-smoke-nightly
depends_on: ~
optional: true
timeout_in_minutes: 30
device: h200_18gb
source_file_dependencies:
- tests/standalone_tests/python_only_compile.sh
commands:
- PYTHON_ONLY_COMPILE_PYTHON=3.14 bash standalone_tests/python_only_compile.sh
- label: ":nvidia: (H200 MIG 35GB) Async Engine, Inputs, Utils, Worker"
device: h200_35gb
key: async-engine-inputs-utils-worker
+40 -3
View File
@@ -1,6 +1,10 @@
#!/bin/bash
# This script tests if the python only compilation works correctly
# for users who do not have any compilers installed on their system
#
# Set PYTHON_ONLY_COMPILE_PYTHON (e.g. 3.14) to install into a fresh uv venv
# with that interpreter and run a short generation, as a smoke test for
# Python versions other than the one the CI image is built with.
set -e
@@ -173,9 +177,12 @@ elif [[ ! -d vllm ]]; then
exit 1
fi
# remove all compilers
apt remove --purge build-essential -y
apt autoremove -y
# remove all compilers, except for the smoke test, whose generation needs a
# C compiler at runtime for torch.compile and Triton
if [[ -z "${PYTHON_ONLY_COMPILE_PYTHON:-}" ]]; then
apt remove --purge build-essential -y
apt autoremove -y
fi
rm -f /tmp/changed.file
echo 'import os; os.system("touch /tmp/changed.file")' >> vllm/__init__.py
@@ -185,12 +192,42 @@ if [[ -n "${rocm_wheel}" ]]; then
VLLM_PRECOMPILED_WHEEL_LOCATION="${rocm_wheel}" VLLM_USE_PRECOMPILED=1 python3 setup.py develop --no-deps
elif [[ "${is_rocm}" == "1" ]]; then
VLLM_PRECOMPILED_WHEEL_COMMIT=$merge_base_commit VLLM_USE_PRECOMPILED=1 python3 setup.py develop --no-deps
elif [[ -n "${PYTHON_ONLY_COMPILE_PYTHON:-}" ]]; then
# Use the CUDA build the image's own torch was installed with, for both the
# new venv's torch and the precompiled wheel variant.
cuda_variant="$(python3 -c 'import torch; print("cu" + torch.version.cuda.replace(".", ""))')"
uv venv --python "${PYTHON_ONLY_COMPILE_PYTHON}" /tmp/python-only-venv
source /tmp/python-only-venv/bin/activate
VLLM_PRECOMPILED_WHEEL_COMMIT=$merge_base_commit VLLM_USE_PRECOMPILED=1 \
VLLM_PRECOMPILED_WHEEL_VARIANT="${cuda_variant}" \
uv pip install -e . --torch-backend="${cuda_variant}"
else
VLLM_PRECOMPILED_WHEEL_COMMIT=$merge_base_commit VLLM_USE_PRECOMPILED=1 pip3 install -vvv -e .
fi
# Run the script
python3 -c 'import vllm'
if [[ -n "${PYTHON_ONLY_COMPILE_PYTHON:-}" ]]; then
python3 - <<'PY'
import os
import sys
from vllm import LLM
expected = os.environ["PYTHON_ONLY_COMPILE_PYTHON"]
actual = f"{sys.version_info.major}.{sys.version_info.minor}"
assert actual == expected, f"expected Python {expected}, got {actual}"
llm = LLM(
"hmellor/tiny-random-LlamaForCausalLM",
max_model_len=256,
gpu_memory_utilization=0.3,
)
outputs = llm.generate(["Hello, my name is"])
assert outputs[0].outputs[0].token_ids, "no tokens generated"
PY
fi
# Check if the clangd log file was created
if [ ! -f /tmp/changed.file ]; then
echo "ERROR: changed.file was not created, python only compilation failed"