@@ -192,6 +192,7 @@ steps:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- block-cpu-release-image-build
|
- block-cpu-release-image-build
|
||||||
- input-release-version
|
- input-release-version
|
||||||
|
id: build-release-image-x86-cpu
|
||||||
agents:
|
agents:
|
||||||
queue: cpu_queue_release
|
queue: cpu_queue_release
|
||||||
commands:
|
commands:
|
||||||
@@ -207,9 +208,10 @@ steps:
|
|||||||
depends_on: ~
|
depends_on: ~
|
||||||
|
|
||||||
- label: "Build release image - arm64 - CPU"
|
- label: "Build release image - arm64 - CPU"
|
||||||
depends_on:
|
depends_on:
|
||||||
- block-arm64-cpu-release-image-build
|
- block-arm64-cpu-release-image-build
|
||||||
- input-release-version
|
- input-release-version
|
||||||
|
id: build-release-image-arm64-cpu
|
||||||
agents:
|
agents:
|
||||||
queue: arm64_cpu_queue_release
|
queue: arm64_cpu_queue_release
|
||||||
commands:
|
commands:
|
||||||
@@ -280,6 +282,31 @@ steps:
|
|||||||
- "docker manifest create public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-cu130-ubuntu2404 public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-x86_64-cu130-ubuntu2404 public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-aarch64-cu130-ubuntu2404 --amend"
|
- "docker manifest create public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-cu130-ubuntu2404 public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-x86_64-cu130-ubuntu2404 public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-aarch64-cu130-ubuntu2404 --amend"
|
||||||
- "docker manifest push public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-cu130-ubuntu2404"
|
- "docker manifest push public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT-cu130-ubuntu2404"
|
||||||
|
|
||||||
|
- block: "Confirm publishing release images to DockerHub"
|
||||||
|
key: block-publish-release-images-dockerhub
|
||||||
|
depends_on:
|
||||||
|
- create-multi-arch-manifest
|
||||||
|
- create-multi-arch-manifest-cuda-13-0
|
||||||
|
- build-release-image-x86-cpu
|
||||||
|
- build-release-image-arm64-cpu
|
||||||
|
- build-rocm-release-image
|
||||||
|
|
||||||
|
- label: "Publish release images to DockerHub"
|
||||||
|
key: publish-release-images-dockerhub
|
||||||
|
depends_on:
|
||||||
|
- block-publish-release-images-dockerhub
|
||||||
|
agents:
|
||||||
|
queue: small_cpu_queue_release
|
||||||
|
commands:
|
||||||
|
- "bash .buildkite/scripts/push-release-builds.sh"
|
||||||
|
plugins:
|
||||||
|
- docker-login#v3.0.0:
|
||||||
|
username: vllmbot
|
||||||
|
password-env: DOCKERHUB_TOKEN
|
||||||
|
env:
|
||||||
|
DOCKER_BUILDKIT: "1"
|
||||||
|
DOCKERHUB_USERNAME: "vllmbot"
|
||||||
|
|
||||||
- label: "Publish nightly multi-arch image to DockerHub"
|
- label: "Publish nightly multi-arch image to DockerHub"
|
||||||
depends_on:
|
depends_on:
|
||||||
- create-multi-arch-manifest
|
- create-multi-arch-manifest
|
||||||
|
|||||||
113
.buildkite/scripts/push-release-builds.sh
Executable file
113
.buildkite/scripts/push-release-builds.sh
Executable file
@@ -0,0 +1,113 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Ensure git tags are up-to-date (Buildkite's default fetch doesn't always include tags)
|
||||||
|
echo "Fetching latest tags from origin..."
|
||||||
|
git fetch --tags --force origin
|
||||||
|
|
||||||
|
# Derive release version from the git tag on the current commit.
|
||||||
|
# The pipeline must be triggered on a tagged commit (e.g. v0.18.1).
|
||||||
|
RELEASE_VERSION=$(git describe --exact-match --tags "${BUILDKITE_COMMIT}" 2>/dev/null || true)
|
||||||
|
if [ -z "${RELEASE_VERSION}" ]; then
|
||||||
|
echo "[FATAL] Commit ${BUILDKITE_COMMIT} has no exact git tag. " \
|
||||||
|
"Release images must be published from a tagged commit."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip leading 'v' for use in Docker tags (e.g. v0.18.1 -> 0.18.1)
|
||||||
|
PURE_VERSION="${RELEASE_VERSION#v}"
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "Publishing release images"
|
||||||
|
echo " Commit: ${BUILDKITE_COMMIT}"
|
||||||
|
echo " Release version: ${RELEASE_VERSION}"
|
||||||
|
echo "========================================"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# ---- CUDA (default, CUDA 12.9) ----
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-x86_64"
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-aarch64"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-x86_64" "vllm/vllm-openai:latest-x86_64"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-x86_64" "vllm/vllm-openai:v${PURE_VERSION}-x86_64"
|
||||||
|
docker push "vllm/vllm-openai:latest-x86_64"
|
||||||
|
docker push "vllm/vllm-openai:v${PURE_VERSION}-x86_64"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-aarch64" "vllm/vllm-openai:latest-aarch64"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-aarch64" "vllm/vllm-openai:v${PURE_VERSION}-aarch64"
|
||||||
|
docker push "vllm/vllm-openai:latest-aarch64"
|
||||||
|
docker push "vllm/vllm-openai:v${PURE_VERSION}-aarch64"
|
||||||
|
|
||||||
|
docker manifest rm "vllm/vllm-openai:latest" || true
|
||||||
|
docker manifest create "vllm/vllm-openai:latest" "vllm/vllm-openai:latest-x86_64" "vllm/vllm-openai:latest-aarch64"
|
||||||
|
docker manifest push "vllm/vllm-openai:latest"
|
||||||
|
|
||||||
|
docker manifest rm "vllm/vllm-openai:v${PURE_VERSION}" || true
|
||||||
|
docker manifest create "vllm/vllm-openai:v${PURE_VERSION}" "vllm/vllm-openai:v${PURE_VERSION}-x86_64" "vllm/vllm-openai:v${PURE_VERSION}-aarch64"
|
||||||
|
docker manifest push "vllm/vllm-openai:v${PURE_VERSION}"
|
||||||
|
|
||||||
|
# ---- CUDA 13.0 ----
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-x86_64-cu130"
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-aarch64-cu130"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-x86_64-cu130" "vllm/vllm-openai:latest-x86_64-cu130"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-x86_64-cu130" "vllm/vllm-openai:v${PURE_VERSION}-x86_64-cu130"
|
||||||
|
docker push "vllm/vllm-openai:latest-x86_64-cu130"
|
||||||
|
docker push "vllm/vllm-openai:v${PURE_VERSION}-x86_64-cu130"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-aarch64-cu130" "vllm/vllm-openai:latest-aarch64-cu130"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-aarch64-cu130" "vllm/vllm-openai:v${PURE_VERSION}-aarch64-cu130"
|
||||||
|
docker push "vllm/vllm-openai:latest-aarch64-cu130"
|
||||||
|
docker push "vllm/vllm-openai:v${PURE_VERSION}-aarch64-cu130"
|
||||||
|
|
||||||
|
docker manifest rm "vllm/vllm-openai:latest-cu130" || true
|
||||||
|
docker manifest create "vllm/vllm-openai:latest-cu130" "vllm/vllm-openai:latest-x86_64-cu130" "vllm/vllm-openai:latest-aarch64-cu130"
|
||||||
|
docker manifest push "vllm/vllm-openai:latest-cu130"
|
||||||
|
|
||||||
|
docker manifest rm "vllm/vllm-openai:v${PURE_VERSION}-cu130" || true
|
||||||
|
docker manifest create "vllm/vllm-openai:v${PURE_VERSION}-cu130" "vllm/vllm-openai:v${PURE_VERSION}-x86_64-cu130" "vllm/vllm-openai:v${PURE_VERSION}-aarch64-cu130"
|
||||||
|
docker manifest push "vllm/vllm-openai:v${PURE_VERSION}-cu130"
|
||||||
|
|
||||||
|
# ---- ROCm ----
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-rocm"
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-rocm-base"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-rocm" "vllm/vllm-openai-rocm:latest"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-rocm" "vllm/vllm-openai-rocm:v${PURE_VERSION}"
|
||||||
|
docker push "vllm/vllm-openai-rocm:latest"
|
||||||
|
docker push "vllm/vllm-openai-rocm:v${PURE_VERSION}"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-rocm-base" "vllm/vllm-openai-rocm:latest-base"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-release-repo:${BUILDKITE_COMMIT}-rocm-base" "vllm/vllm-openai-rocm:v${PURE_VERSION}-base"
|
||||||
|
docker push "vllm/vllm-openai-rocm:latest-base"
|
||||||
|
docker push "vllm/vllm-openai-rocm:v${PURE_VERSION}-base"
|
||||||
|
|
||||||
|
# ---- CPU ----
|
||||||
|
# CPU images in ECR are tagged with the full version including 'v' (e.g. v0.18.1),
|
||||||
|
# matching the value from the Buildkite release-version metadata input.
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:${RELEASE_VERSION}"
|
||||||
|
docker pull "public.ecr.aws/q9t5s3a7/vllm-arm64-cpu-release-repo:${RELEASE_VERSION}"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:${RELEASE_VERSION}" "vllm/vllm-openai-cpu:latest-x86_64"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:${RELEASE_VERSION}" "vllm/vllm-openai-cpu:v${PURE_VERSION}-x86_64"
|
||||||
|
docker push "vllm/vllm-openai-cpu:latest-x86_64"
|
||||||
|
docker push "vllm/vllm-openai-cpu:v${PURE_VERSION}-x86_64"
|
||||||
|
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-arm64-cpu-release-repo:${RELEASE_VERSION}" "vllm/vllm-openai-cpu:latest-arm64"
|
||||||
|
docker tag "public.ecr.aws/q9t5s3a7/vllm-arm64-cpu-release-repo:${RELEASE_VERSION}" "vllm/vllm-openai-cpu:v${PURE_VERSION}-arm64"
|
||||||
|
docker push "vllm/vllm-openai-cpu:latest-arm64"
|
||||||
|
docker push "vllm/vllm-openai-cpu:v${PURE_VERSION}-arm64"
|
||||||
|
|
||||||
|
docker manifest rm "vllm/vllm-openai-cpu:latest" || true
|
||||||
|
docker manifest create "vllm/vllm-openai-cpu:latest" "vllm/vllm-openai-cpu:latest-x86_64" "vllm/vllm-openai-cpu:latest-arm64"
|
||||||
|
docker manifest push "vllm/vllm-openai-cpu:latest"
|
||||||
|
|
||||||
|
docker manifest rm "vllm/vllm-openai-cpu:v${PURE_VERSION}" || true
|
||||||
|
docker manifest create "vllm/vllm-openai-cpu:v${PURE_VERSION}" "vllm/vllm-openai-cpu:v${PURE_VERSION}-x86_64" "vllm/vllm-openai-cpu:v${PURE_VERSION}-arm64"
|
||||||
|
docker manifest push "vllm/vllm-openai-cpu:v${PURE_VERSION}"
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo "Successfully published release images for ${RELEASE_VERSION}"
|
||||||
|
echo "========================================"
|
||||||
Reference in New Issue
Block a user