@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 965765aef9
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 10, 01:30 UTC

[build] fix cu130 related release pipeline steps and publish as nightly image (#32522)

Signed-off-by: Shengqi Chen <harry-chen@outlook.com>

Shengqi Chen committed Jan 18, 2026 at 10:36 UTC 965765aef94e4497c67ff30e0c8325e01e16d284
3 files changed +68 -16
.buildkite/release-pipeline.yaml
+23 -14
@@ -141,7 +141,7 @@ steps:
141 queue: cpu_queue_postmerge
142 commands:
143 - "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
144 - - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=13.0.2 --build-arg FLASHINFER_AOT_COMPILE=true --build-arg INSTALL_KV_CONNECTORS=true --build-arg BUILD_BASE_IMAGE=nvidia/cuda:13.0.2-devel-ubuntu22.04 --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130 --target vllm-openai --progress plain -f docker/Dockerfile ."
144 + - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=13.0.1 --build-arg INSTALL_KV_CONNECTORS=true --build-arg BUILD_BASE_IMAGE=nvidia/cuda:13.0.1-devel-ubuntu22.04 --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130 --target vllm-openai --progress plain -f docker/Dockerfile ."
145 - "docker push public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130"
146 # re-tag to default image tag and push, just in case arm64 build fails
147 - "docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130 public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-cu130"
@@ -154,7 +154,8 @@ steps:
154 queue: arm64_cpu_queue_postmerge
155 commands:
156 - "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
157 - - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=13.0.2 --build-arg FLASHINFER_AOT_COMPILE=true --build-arg torch_cuda_arch_list='8.7 8.9 9.0 10.0+PTX 12.0' --build-arg INSTALL_KV_CONNECTORS=true --build-arg BUILD_BASE_IMAGE=nvidia/cuda:13.0.2-devel-ubuntu22.04 --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130 --target vllm-openai --progress plain -f docker/Dockerfile ."
157 + # compute capability 12.0 for RTX-50 series / RTX PRO 6000 Blackwell, 12.1 for DGX Spark
158 + - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=13.0.1 --build-arg torch_cuda_arch_list='8.7 8.9 9.0 10.0+PTX 12.0 12.1' --build-arg INSTALL_KV_CONNECTORS=true --build-arg BUILD_BASE_IMAGE=nvidia/cuda:13.0.1-devel-ubuntu22.04 --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130 --target vllm-openai --progress plain -f docker/Dockerfile ."
159 - "docker push public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-$(uname -m)-cu130"
160
161 - label: "Create multi-arch manifest - CUDA 13.0"
@@ -243,7 +244,6 @@ steps:
244 # Build vLLM ROCm image using the base
245 - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg BASE_IMAGE=rocm/vllm-dev:base-$BUILDKITE_COMMIT --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-rocm --target vllm-openai --progress plain -f docker/Dockerfile.rocm ."
246 - "docker push public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-rocm"
246 -
247
248 - label: "Build and publish nightly multi-arch image to DockerHub"
249 depends_on:
@@ -252,17 +252,7 @@ steps:
252 agents:
253 queue: small_cpu_queue_postmerge
254 commands:
255 - - "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
256 - - "docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-x86_64"
257 - - "docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-aarch64"
258 - - "docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-x86_64 vllm/vllm-openai:nightly-x86_64"
259 - - "docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-aarch64 vllm/vllm-openai:nightly-aarch64"
260 - - "docker push vllm/vllm-openai:nightly-x86_64"
261 - - "docker push vllm/vllm-openai:nightly-aarch64"
262 - - "docker manifest create vllm/vllm-openai:nightly vllm/vllm-openai:nightly-x86_64 vllm/vllm-openai:nightly-aarch64 --amend"
263 - - "docker manifest create vllm/vllm-openai:nightly-$BUILDKITE_COMMIT vllm/vllm-openai:nightly-x86_64 vllm/vllm-openai:nightly-aarch64 --amend"
264 - - "docker manifest push vllm/vllm-openai:nightly"
265 - - "docker manifest push vllm/vllm-openai:nightly-$BUILDKITE_COMMIT"
255 + - "bash .buildkite/scripts/push-nightly-builds.sh"
256 # Clean up old nightly builds (keep only last 14)
257 - "bash .buildkite/scripts/cleanup-nightly-builds.sh"
258 plugins:
@@ -273,6 +263,25 @@ steps:
263 DOCKER_BUILDKIT: "1"
264 DOCKERHUB_USERNAME: "vllmbot"
265
266 + - label: "Build and publish nightly multi-arch image to DockerHub - CUDA 13.0"
267 + depends_on:
268 + - create-multi-arch-manifest-cuda-13-0
269 + if: build.env("NIGHTLY") == "1"
270 + agents:
271 + queue: small_cpu_queue_postmerge
272 + commands:
273 + - "bash .buildkite/scripts/push-nightly-builds.sh cu130"
274 + # Clean up old nightly builds (keep only last 14)
275 + - "bash .buildkite/scripts/cleanup-nightly-builds.sh cu130-nightly-"
276 + plugins:
277 + - docker-login#v3.0.0:
278 + username: vllmbot
279 + password-env: DOCKERHUB_TOKEN
280 + env:
281 + DOCKER_BUILDKIT: "1"
282 + DOCKERHUB_USERNAME: "vllmbot"
283 +
284 +
285 # =============================================================================
286 # ROCm Release Pipeline (x86_64 only)
287 # =============================================================================
.buildkite/scripts/cleanup-nightly-builds.sh
+9 -2
@@ -3,7 +3,14 @@
3 set -ex
4
5 # Clean up old nightly builds from DockerHub, keeping only the last 14 builds
6 -# This script uses DockerHub API to list and delete old tags with "nightly-" prefix
6 +# This script uses DockerHub API to list and delete old tags with specified prefix
7 +# Usage: cleanup-nightly-builds.sh [TAG_PREFIX]
8 +# Example: cleanup-nightly-builds.sh "nightly-" or cleanup-nightly-builds.sh "cu130-nightly-"
9 +
10 +# Get tag prefix from argument, default to "nightly-" if not provided
11 +TAG_PREFIX="${1:-nightly-}"
12 +
13 +echo "Cleaning up tags with prefix: $TAG_PREFIX"
14
15 # DockerHub API endpoint for vllm/vllm-openai repository
16 REPO_API_URL="https://hub.docker.com/v2/repositories/vllm/vllm-openai/tags"
@@ -45,7 +52,7 @@ get_all_tags() {
52 set -x
53
54 # Get both last_updated timestamp and tag name, separated by |
48 - local tags=$(echo "$response" | jq -r '.results[] | select(.name | startswith("nightly-")) | "\(.last_updated)|\(.name)"')
55 + local tags=$(echo "$response" | jq -r --arg prefix "$TAG_PREFIX" '.results[] | select(.name | startswith($prefix)) | "\(.last_updated)|\(.name)"')
56
57 if [ -z "$tags" ]; then
58 break
.buildkite/scripts/push-nightly-builds.sh new
+36
@@ -0,0 +1,36 @@
1 +#!/bin/bash
2 +
3 +set -ex
4 +
5 +# Get tag variant from argument, default to empty if not provided, should be something like "cu130".
6 +# Due to limits in cleanup script, we must move variants to use separate tags like "cu130-nightly",
7 +# otherwise they will be cleaned up together with the main "nightly" tags.
8 +
9 +TAG_VARIANT="$1"
10 +if [ -n "$TAG_VARIANT" ]; then
11 + ORIG_TAG_SUFFIX="-$TAG_VARIANT"
12 + TAG_NAME="$TAG_VARIANT-nightly"
13 +else
14 + ORIG_TAG_SUFFIX=""
15 + TAG_NAME="nightly"
16 +fi
17 +
18 +ORIG_TAG_NAME="$BUILDKITE_COMMIT"
19 +
20 +echo "Pushing original tag $ORIG_TAG_NAME$ORIG_TAG_SUFFIX to new nightly tag name: $TAG_NAME"
21 +
22 +# pull original arch-dependent images from AWS ECR Public
23 +aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
24 +docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:$ORIG_TAG_NAME-x86_64$ORIG_TAG_SUFFIX
25 +docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:$ORIG_TAG_NAME-aarch64$ORIG_TAG_SUFFIX
26 +# tag arch-dependent images
27 +docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$ORIG_TAG_NAME-x86_64$ORIG_TAG_SUFFIX vllm/vllm-openai:$TAG_NAME-x86_64
28 +docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$ORIG_TAG_NAME-aarch64$ORIG_TAG_SUFFIX vllm/vllm-openai:$TAG_NAME-aarch64
29 +# push arch-dependent images to DockerHub
30 +docker push vllm/vllm-openai:$TAG_NAME-x86_64
31 +docker push vllm/vllm-openai:$TAG_NAME-aarch64
32 +# push arch-independent manifest to DockerHub
33 +docker manifest create vllm/vllm-openai:$TAG_NAME vllm/vllm-openai:$TAG_NAME-x86_64 vllm/vllm-openai:$TAG_NAME-aarch64 --amend
34 +docker manifest create vllm/vllm-openai:$TAG_NAME-$BUILDKITE_COMMIT vllm/vllm-openai:$TAG_NAME-x86_64 vllm/vllm-openai:$TAG_NAME-aarch64 --amend
35 +docker manifest push vllm/vllm-openai:$TAG_NAME
36 +docker manifest push vllm/vllm-openai:$TAG_NAME-$BUILDKITE_COMMIT