diff --git a/.buildkite/nightly-release-pipeline.yaml b/.buildkite/nightly-release-pipeline.yaml index 10d89457e..bcb84c08d 100644 --- a/.buildkite/nightly-release-pipeline.yaml +++ b/.buildkite/nightly-release-pipeline.yaml @@ -33,14 +33,22 @@ steps: DOCKER_BUILDKIT=1 docker build \ --build-arg max_jobs=16 \ --tag public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m) \ + --tag vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m) \ + --tag vllm/vllm-omni:nightly-$(uname -m) \ --progress plain \ -f docker/Dockerfile.cuda . + # push to ECR (per-arch, commit-pinned) for staging - "docker push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m)" - # re-tag to default image tag and push, just in case arm64 build fails - - "docker tag public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m) public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT" - - "docker push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT" + # push to DockerHub (per-arch) so the multi-arch manifest can reference them + - "docker push vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m)" + - "docker push vllm/vllm-omni:nightly-$(uname -m)" + plugins: + - docker-login#v3.0.0: + username: vllmbot + password-env: DOCKERHUB_TOKEN env: DOCKER_BUILDKIT: "1" + DOCKERHUB_USERNAME: "vllmbot" - label: "Build release image - aarch64" key: build-release-image-arm64 @@ -53,31 +61,40 @@ steps: DOCKER_BUILDKIT=1 docker build \ --build-arg max_jobs=16 \ --tag public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m) \ + --tag vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m) \ + --tag vllm/vllm-omni:nightly-$(uname -m) \ --progress plain \ -f docker/Dockerfile.cuda . + # push to ECR (per-arch, commit-pinned) for staging - "docker push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m)" + # push to DockerHub (per-arch) so the multi-arch manifest can reference them + - "docker push vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m)" + - "docker push vllm/vllm-omni:nightly-$(uname -m)" + plugins: + - docker-login#v3.0.0: + username: vllmbot + password-env: DOCKERHUB_TOKEN env: DOCKER_BUILDKIT: "1" + DOCKERHUB_USERNAME: "vllmbot" - - label: "Create multi-arch manifest" - key: create-multi-arch-manifest + - label: "Publish multi-arch manifest to DockerHub" + key: publish-multi-arch-dockerhub depends_on: - build-release-image-x86 - build-release-image-arm64 agents: queue: small_cpu_queue_release commands: + # ECR multi-arch manifest (commit-pinned, useful for downstream tests) - "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7" - "docker manifest create public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-x86_64 public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-aarch64 --amend" - "docker manifest push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT" - - - label: "Publish nightly multi-arch image to DockerHub" - depends_on: - - create-multi-arch-manifest - agents: - queue: small_cpu_queue_release - commands: - - "bash .buildkite/scripts/push-nightly-builds.sh" + # DockerHub multi-arch manifests (nightly + commit-pinned) + - "docker manifest create vllm/vllm-omni:nightly vllm/vllm-omni:nightly-x86_64 vllm/vllm-omni:nightly-aarch64 --amend" + - "docker manifest create vllm/vllm-omni:nightly-$BUILDKITE_COMMIT vllm/vllm-omni:nightly-x86_64 vllm/vllm-omni:nightly-aarch64 --amend" + - "docker manifest push vllm/vllm-omni:nightly" + - "docker manifest push vllm/vllm-omni:nightly-$BUILDKITE_COMMIT" plugins: - docker-login#v3.0.0: username: vllmbot diff --git a/.buildkite/scripts/push-nightly-builds.sh b/.buildkite/scripts/push-nightly-builds.sh deleted file mode 100755 index 6dbaf3e4b..000000000 --- a/.buildkite/scripts/push-nightly-builds.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -set -ex - -# Pull per-arch images from ECR (built earlier in the pipeline) and re-publish -# them to Docker Hub under a nightly tag, then create and push a multi-arch -# manifest pointing at both per-arch tags. - -ORIG_TAG_NAME="$BUILDKITE_COMMIT" -TAG_NAME="nightly" -DOCKERHUB_REPO="vllm/vllm-omni" -ECR_REPO="public.ecr.aws/q9t5s3a7/vllm-omni-release-repo" - -echo "Pushing original tag $ORIG_TAG_NAME to new nightly tag name: $TAG_NAME" - -# pull original arch-dependent images from AWS ECR Public -aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7 -docker pull "$ECR_REPO:$ORIG_TAG_NAME-x86_64" -docker pull "$ECR_REPO:$ORIG_TAG_NAME-aarch64" -# tag arch-dependent images -docker tag "$ECR_REPO:$ORIG_TAG_NAME-x86_64" "$DOCKERHUB_REPO:$TAG_NAME-x86_64" -docker tag "$ECR_REPO:$ORIG_TAG_NAME-aarch64" "$DOCKERHUB_REPO:$TAG_NAME-aarch64" -# push arch-dependent images to DockerHub -docker push "$DOCKERHUB_REPO:$TAG_NAME-x86_64" -docker push "$DOCKERHUB_REPO:$TAG_NAME-aarch64" -# push arch-independent manifest to DockerHub -docker manifest create "$DOCKERHUB_REPO:$TAG_NAME" "$DOCKERHUB_REPO:$TAG_NAME-x86_64" "$DOCKERHUB_REPO:$TAG_NAME-aarch64" --amend -docker manifest create "$DOCKERHUB_REPO:$TAG_NAME-$BUILDKITE_COMMIT" "$DOCKERHUB_REPO:$TAG_NAME-x86_64" "$DOCKERHUB_REPO:$TAG_NAME-aarch64" --amend -docker manifest push "$DOCKERHUB_REPO:$TAG_NAME" -docker manifest push "$DOCKERHUB_REPO:$TAG_NAME-$BUILDKITE_COMMIT"