| 1 | #!/bin/bash |
| 2 | # Emit docker build flags for release image provenance metadata. |
| 3 | # Keep this helper best-effort: missing Buildkite metadata should fall back to |
| 4 | # local/default values instead of blocking the Docker build. |
| 5 | |
| 6 | # Variant examples: "", "cu129", "ubuntu2404", "cu129-ubuntu2404". |
| 7 | variant="${1:-}" |
| 8 | variant_suffix="${variant:+-${variant}}" |
| 9 | |
| 10 | image_name="${VLLM_DOCKER_IMAGE_NAME:-vllm/vllm-openai}" |
| 11 | staging_repo="${VLLM_STAGING_IMAGE_REPO:-public.ecr.aws/q9t5s3a7/vllm-release-repo}" |
| 12 | build_commit="${VLLM_BUILD_COMMIT:-${BUILDKITE_COMMIT:-unknown}}" |
| 13 | build_pipeline="${VLLM_BUILD_PIPELINE:-${BUILDKITE_PIPELINE_ID:-${BUILDKITE_PIPELINE_SLUG:-local}}}" |
| 14 | build_url="${VLLM_BUILD_URL:-${BUILDKITE_BUILD_URL:-}}" |
| 15 | tag_commit="${BUILDKITE_COMMIT:-${build_commit}}" |
| 16 | |
| 17 | if [[ -n "${BUILDKITE:-}" || -n "${BUILDKITE_COMMIT:-}" ]]; then |
| 18 | release_version="${RELEASE_VERSION:-}" |
| 19 | if command -v buildkite-agent >/dev/null 2>&1; then |
| 20 | release_version="${release_version:-$(buildkite-agent meta-data get release-version 2>/dev/null)}" |
| 21 | fi |
| 22 | release_version="${release_version#v}" |
| 23 | release_version="${release_version:-${tag_commit}}" |
| 24 | |
| 25 | staging_image_ref="${staging_repo}:${tag_commit}-$(uname -m)${variant_suffix}" |
| 26 | |
| 27 | if [[ "${NIGHTLY:-}" == "1" ]]; then |
| 28 | if [[ -z "${variant}" ]]; then |
| 29 | image_tag="${image_name}:nightly-${tag_commit}" |
| 30 | elif [[ "${variant}" == cu* ]]; then |
| 31 | cuda_variant="${variant%%-*}" |
| 32 | remaining_variant="${variant#"${cuda_variant}"}" |
| 33 | image_tag="${image_name}:${cuda_variant}-nightly-${tag_commit}${remaining_variant}" |
| 34 | else |
| 35 | image_tag="${image_name}:nightly-${tag_commit}${variant_suffix}" |
| 36 | fi |
| 37 | else |
| 38 | image_tag="${image_name}:v${release_version}${variant_suffix}" |
| 39 | fi |
| 40 | else |
| 41 | image_tag="${VLLM_IMAGE_TAG:-local/vllm-openai:dev}" |
| 42 | staging_image_ref="${image_tag}" |
| 43 | fi |
| 44 | |
| 45 | emit_arg() { |
| 46 | printf -- "--build-arg %s=%s " "$1" "$2" |
| 47 | } |
| 48 | |
| 49 | emit_arg VLLM_BUILD_COMMIT "${build_commit}" |
| 50 | emit_arg VLLM_BUILD_PIPELINE "${build_pipeline}" |
| 51 | emit_arg VLLM_BUILD_URL "${build_url}" |
| 52 | # This is the intended public tag. The final digest is only known after push. |
| 53 | emit_arg VLLM_IMAGE_TAG "${image_tag}" |
| 54 | printf -- "--tag %s " "${staging_image_ref}" |