main
sh 54 lines 2.12 KB
Raw
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}"