114 lines
6.3 KiB
Bash
Executable File
114 lines
6.3 KiB
Bash
Executable File
#!/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 "========================================"
|