1010{% set docker_image_cu 118 = "public.ecr.aws/q9t5s3a7/vllm-ci-postmerge-repo:$BUILDKITE_COMMIT-cu118" %}
1111{% set docker_image_cpu = "public.ecr.aws/q9t5s3a7/vllm-ci-postmerge-repo:$BUILDKITE_COMMIT-cpu" %}
1212{% endif %}
13+ {% set skip_image_build = (skip_image_build | default ("0" )) %}
14+ {% if skip_image_build == "1" and docker_image_override is defined and docker_image_override %}
15+ {% set docker_image = docker_image_override %}
16+ {% set docker_image_torch_nightly = docker_image_override %}
17+ {% set docker_image_cu 118 = docker_image_override %}
18+ {% set docker_image_cpu = docker_image_override %}
19+ {% endif %}
1320{% set docker_image_amd = "rocm/vllm-ci:$BUILDKITE_COMMIT" %}
1421{% set default_working_dir = "/vllm-workspace/tests" %}
1522{% set hf_home = "/root/.cache/huggingface" %}
3037{% - set tests_only = (tests_acc .only_tests and tests_acc .any ) %}
3138{% - set changed_tests = tests_acc .changed %}
3239
40+ {% macro vllm_checkoutoverlay_script (step ,default_working_dir ,skip_image_build ,fail_fast ,cov_enabled ) -%}
41+ set {% if fail_fast == "true" %} -xeuo pipefail{% else %} -xuo{% endif %}
42+ echo "SKIP_IMAGE_BUILD={{ skip_image_build }}"
43+ {% if skip_image_build == "1" %}
44+
45+ # Copy in the code from the checkout to the workspace
46+ rm -rf /vllm-workspace/vllm || true
47+ cp -a /workdir/. /vllm-workspace/
48+
49+ # Overlay the pure-Python vllm into the install package dir
50+ export SITEPKG="$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"
51+ cp -a /vllm-workspace/vllm/* "$$SITEPKG/vllm/"
52+
53+ # Restore src/ layout, as Dockerfile does. Hides code from tests, but allows setup.
54+ rm -rf /vllm-workspace/src || true
55+ mkdir -p /vllm-workspace/src
56+ mv /vllm-workspace/vllm /vllm-workspace/src/vllm
57+
58+ (command -v nvidia-smi >/dev/null && nvidia-smi || true)
59+ export VLLM_LOGGING_LEVEL=DEBUG
60+ export VLLM_ALLOW_DEPRECATED_BEAM_SEARCH=1
61+ cd {{ (step.working_dir or default_working_dir) | safe }}
62+
63+ # Run tests with intelligent targeting and coverage
64+ {{ add_docker_pytest_coverage(step, cov_enabled) }}
65+ {% - endmacro %}
3366{% macro add_pytest_coverage (cmd , coverage_file ) %}
3467{% if "pytest " in cmd %}
3568COVERAGE_FILE={{ coverage_file }} {{ cmd | replace("pytest ", "pytest --cov=vllm --cov-report=xml --cov-append --durations=0 ") }} || true
@@ -141,7 +174,11 @@ plugins:
141174 {% if step .label == "Benchmarks" or step .mount_buildkite_agent or cov_enabled %}
142175 mount-buildkite-agent: true
143176 {% endif %}
144- command: ["bash", "{% if fail_fast == "true" %} -xce{% else %} -xc{% endif %} ", "(command nvidia-smi || true) && export VLLM_ALLOW_DEPRECATED_BEAM_SEARCH=1 && cd {{ (step.working_dir or default_working_dir) | safe }} && {{ add_docker_pytest_coverage(step, cov_enabled) }}"]
177+ command:
178+ - "/bin/bash"
179+ - "-c"
180+ - |
181+ {{ vllm_checkoutoverlay_script(step,default_working_dir,skip_image_build,fail_fast,cov_enabled) | indent(12,true) }}
145182 environment:
146183 - VLLM_USAGE_SOURCE=ci-test
147184 - NCCL_CUMEM_HOST_ENABLE=0
@@ -160,13 +197,18 @@ plugins:
160197 volumes:
161198 - /dev/shm:/dev/shm
162199 - {{ hf_home_fsx }}:{{ hf_home_fsx }}
200+ - $PWD:/workdir
163201 {% elif step .gpu == "h200" %}
164202 - docker#v5.2.0:
165203 image: {{ image }}
166204 always-pull: true
167205 propagate-environment: true
168206 gpus: all
169- command: ["bash", "{% if fail_fast == "true" %} -xce{% else %} -xc{% endif %} ", "(command nvidia-smi || true) && export VLLM_ALLOW_DEPRECATED_BEAM_SEARCH=1 && cd {{ (step.working_dir or default_working_dir) | safe }} && {{ add_docker_pytest_coverage(step, cov_enabled) }}"]
207+ command:
208+ - "/bin/bash"
209+ - "-c"
210+ - |
211+ {{ vllm_checkoutoverlay_script(step,default_working_dir,skip_image_build,fail_fast,cov_enabled) | indent(12,true) }}
170212 environment:
171213 - VLLM_USAGE_SOURCE=ci-test
172214 - NCCL_CUMEM_HOST_ENABLE=0
@@ -183,14 +225,19 @@ plugins:
183225 - /dev/shm:/dev/shm
184226 - /data/benchmark-hf-cache:/benchmark-hf-cache
185227 - /data/benchmark-vllm-cache:/root/.cache/vllm
228+ - $PWD:/workdir
186229 {% elif step .gpu == "b200" %}
187230 - docker#v5.2.0:
188231 image: {{ image }}
189232 always-pull: true
190233 propagate-environment: true
191234 # gpus will be configured by BUILDKITE_PLUGIN_DOCKER_GPUS in per host environment variable.
192235 # gpus: all
193- command: ["bash", "{% if fail_fast == "true" %} -xce{% else %} -xc{% endif %} ", "(command nvidia-smi || true) && export VLLM_ALLOW_DEPRECATED_BEAM_SEARCH=1 && cd {{ (step.working_dir or default_working_dir) | safe }} && {{ add_docker_pytest_coverage(step, cov_enabled) }}"]
236+ command:
237+ - "/bin/bash"
238+ - "-c"
239+ - |
240+ {{ vllm_checkoutoverlay_script(step,default_working_dir,skip_image_build,fail_fast,cov_enabled) | indent(12,true) }}
194241 environment:
195242 - VLLM_USAGE_SOURCE=ci-test
196243 - NCCL_CUMEM_HOST_ENABLE=0
@@ -207,6 +254,7 @@ plugins:
207254 - /dev/shm:/dev/shm
208255 - /data/benchmark-hf-cache:/benchmark-hf-cache
209256 - /data/benchmark-vllm-cache:/root/.cache/vllm
257+ - $PWD:/workdir
210258 {% else %}
211259 - kubernetes:
212260 podSpec:
@@ -251,6 +299,7 @@ plugins:
251299
252300
253301steps:
302+ {% if skip_image_build != "1" %}
254303 - label: ":docker: build image"
255304 key: image-build
256305 depends_on: ~
@@ -376,6 +425,7 @@ steps:
376425 limit: 2
377426 - exit_status: -10 # Agent was lost
378427 limit: 2
428+ {% endif %}
379429
380430 {% for step in steps %}
381431 {% if step .fast_check_only != true %}
@@ -404,15 +454,23 @@ steps:
404454
405455 {% if ns .blocked == 1 or (step .optional and nightly != "1" ) %}
406456 - block: "Run {{ step.label }}"
457+ {% if skip_image_build != "1" %}
407458 depends_on: image-build
459+ {% else %}
460+ depends_on: ~
461+ {% endif %}
408462 key: block-{{ step.label | replace(" ", "-") | lower | replace("(", "") | replace(")", "") | replace("%", "") | replace(",", "-") | replace("+", "-") }}
409463 {% endif %}
410464
411465 - label: "{{ step.label }}"
412466 {% if ns .blocked == 1 or (step .optional and nightly != "1" ) %}
413467 depends_on: block-{{ step.label | replace(" ", "-") | lower | replace("(", "") | replace(")", "") | replace("%", "") | replace(",", "-") | replace("+", "-") }}
414468 {% else %}
469+ {% if skip_image_build != "1" %}
415470 depends_on: {{ "image-build-cpu" if step.no_gpu else "image-build" }}
471+ {% else %}
472+ depends_on: ~
473+ {% endif %}
416474 {% endif %}
417475 soft_fail: {{ step.soft_fail or false }}
418476 {{ render_cuda_config(step, docker_image_cpu if step.no_gpu else docker_image, default_working_dir, hf_home_fsx, hf_home, branch) | indent(4, true) }}
0 commit comments