[ROCm] [Release] [Per-commit] Reenable per commit rocm wheel (#49044)
Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
TJian committed
Jul 19, 2026 at 11:38 UTC
ef0aa7ca2feb75051b30ea3cef4e9950252b1441
1 file changed
+354
-357
.buildkite/release-pipeline.yaml
+354
-357
@@ -590,373 +590,370 @@ steps:
590
#
591
# =============================================================================
592
593
- - block: "Unblock ROCm wheel/image prerequisites"
593
+ - group: "Build ROCm Wheel / Image "
594
+ key: "build-rocm-wheel-image"
595
depends_on: ~
595
- key: block-build-rocm
596
- if: build.env("NIGHTLY") != "1"
596
+ steps:
597
+ # ROCm Job 1: Build ROCm Base Wheels (with S3 caching)
598
+ - label: ":rocm: Build ROCm Base Image & Wheels"
599
+ id: build-rocm-base-wheels
600
+ depends_on: ~
601
+ agents:
602
+ queue: cpu_queue_release
603
+ commands:
604
+ - |
605
+ set -euo pipefail
606
+
607
+ # Generate cache key
608
+ CACHE_KEY=$$(.buildkite/scripts/cache-rocm-base-wheels.sh key)
609
+ ECR_CACHE_TAG="public.ecr.aws/q9t5s3a7/vllm-release-repo:$${CACHE_KEY}-rocm-base"
610
+
611
+ echo "========================================"
612
+ echo "ROCm Base Build Configuration"
613
+ echo "========================================"
614
+ echo " CACHE_KEY: $${CACHE_KEY}"
615
+ echo " ECR_CACHE_TAG: $${ECR_CACHE_TAG}"
616
+ echo "========================================"
617
+
618
+ # Login to ECR
619
+ aws ecr-public get-login-password --region us-east-1 | \
620
+ docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
621
+
622
+ IMAGE_EXISTS=false
623
+ WHEELS_EXIST=false
624
+
625
+ # Check ECR for Docker image
626
+
627
+ if docker manifest inspect "$${ECR_CACHE_TAG}" > /dev/null 2>&1; then
628
+ IMAGE_EXISTS=true
629
+ echo "ECR image cache HIT"
630
+ fi
631
+
632
+ # Check S3 for wheels
633
+ WHEEL_CACHE_STATUS=$(.buildkite/scripts/cache-rocm-base-wheels.sh check)
634
+ if [ "$${WHEEL_CACHE_STATUS}" = "hit" ]; then
635
+ WHEELS_EXIST=true
636
+ echo "S3 wheels cache HIT"
637
+ fi
638
+
639
+
640
+ # Scenario 1: Both cached (best case)
641
+ if [ "$${IMAGE_EXISTS}" = "true" ] && [ "$${WHEELS_EXIST}" = "true" ]; then
642
+ echo ""
643
+ echo "FULL CACHE HIT - Reusing both image and wheels"
644
+ echo ""
645
+
646
+ # Download wheels
647
+ .buildkite/scripts/cache-rocm-base-wheels.sh download
648
+
649
+ # Save ECR tag for downstream jobs
650
+ buildkite-agent meta-data set "rocm-base-image-tag" "$${ECR_CACHE_TAG}"
651
+
652
+ # Scenario 2: Full rebuild needed
653
+ else
654
+ echo ""
655
+ echo " CACHE MISS - Building from scratch..."
656
+ echo ""
657
+
658
+ # Build full base image and push to ECR
659
+ DOCKER_BUILDKIT=1 docker buildx build \
660
+ --file docker/Dockerfile.rocm_base \
661
+ --tag "$${ECR_CACHE_TAG}" \
662
+ --build-arg USE_SCCACHE=1 \
663
+ --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
664
+ --build-arg SCCACHE_REGION_NAME=us-west-2 \
665
+ --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
666
+ --push \
667
+ .
668
+
669
+ # Build wheel extraction stage
670
+ DOCKER_BUILDKIT=1 docker buildx build \
671
+ --file docker/Dockerfile.rocm_base \
672
+ --tag rocm-base-debs:$${BUILDKITE_BUILD_NUMBER} \
673
+ --target debs_wheel_release \
674
+ --build-arg USE_SCCACHE=1 \
675
+ --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
676
+ --build-arg SCCACHE_REGION_NAME=us-west-2 \
677
+ --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
678
+ --load \
679
+ .
680
+
681
+ # Extract and upload wheels
682
+ mkdir -p artifacts/rocm-base-wheels
683
+ cid=$(docker create rocm-base-debs:$${BUILDKITE_BUILD_NUMBER})
684
+ docker cp $${cid}:/app/debs/. artifacts/rocm-base-wheels/
685
+ docker rm $${cid}
686
+
687
+ .buildkite/scripts/cache-rocm-base-wheels.sh upload
688
+
689
+ # Cache base docker image to ECR
690
+ docker push "$${ECR_CACHE_TAG}"
691
+
692
+ buildkite-agent meta-data set "rocm-base-image-tag" "$${ECR_CACHE_TAG}"
693
+
694
+ echo ""
695
+ echo " Build complete - Image and wheels cached"
696
+ fi
697
598
- # ROCm Job 1: Build ROCm Base Wheels (with S3 caching)
599
- - label: ":rocm: Build ROCm Base Image & Wheels"
600
- id: build-rocm-base-wheels
601
- depends_on:
602
- - step: block-build-rocm
603
- allow_failure: true
604
- agents:
605
- queue: cpu_queue_release
606
- commands:
607
- - |
608
- set -euo pipefail
609
-
610
- # Generate cache key
611
- CACHE_KEY=$$(.buildkite/scripts/cache-rocm-base-wheels.sh key)
612
- ECR_CACHE_TAG="public.ecr.aws/q9t5s3a7/vllm-release-repo:$${CACHE_KEY}-rocm-base"
613
-
614
- echo "========================================"
615
- echo "ROCm Base Build Configuration"
616
- echo "========================================"
617
- echo " CACHE_KEY: $${CACHE_KEY}"
618
- echo " ECR_CACHE_TAG: $${ECR_CACHE_TAG}"
619
- echo "========================================"
620
-
621
- # Login to ECR
622
- aws ecr-public get-login-password --region us-east-1 | \
623
- docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
624
-
625
- IMAGE_EXISTS=false
626
- WHEELS_EXIST=false
627
-
628
- # Check ECR for Docker image
629
-
630
- if docker manifest inspect "$${ECR_CACHE_TAG}" > /dev/null 2>&1; then
631
- IMAGE_EXISTS=true
632
- echo "ECR image cache HIT"
633
- fi
634
-
635
- # Check S3 for wheels
636
- WHEEL_CACHE_STATUS=$(.buildkite/scripts/cache-rocm-base-wheels.sh check)
637
- if [ "$${WHEEL_CACHE_STATUS}" = "hit" ]; then
638
- WHEELS_EXIST=true
639
- echo "S3 wheels cache HIT"
640
- fi
641
-
642
-
643
- # Scenario 1: Both cached (best case)
644
- if [ "$${IMAGE_EXISTS}" = "true" ] && [ "$${WHEELS_EXIST}" = "true" ]; then
645
- echo ""
646
- echo "FULL CACHE HIT - Reusing both image and wheels"
647
- echo ""
648
-
649
- # Download wheels
650
- .buildkite/scripts/cache-rocm-base-wheels.sh download
651
-
652
- # Save ECR tag for downstream jobs
653
- buildkite-agent meta-data set "rocm-base-image-tag" "$${ECR_CACHE_TAG}"
654
-
655
- # Scenario 2: Full rebuild needed
656
- else
657
- echo ""
658
- echo " CACHE MISS - Building from scratch..."
659
- echo ""
660
-
661
- # Build full base image and push to ECR
662
- DOCKER_BUILDKIT=1 docker buildx build \
663
- --file docker/Dockerfile.rocm_base \
664
- --tag "$${ECR_CACHE_TAG}" \
665
- --build-arg USE_SCCACHE=1 \
666
- --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
667
- --build-arg SCCACHE_REGION_NAME=us-west-2 \
668
- --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
669
- --push \
670
- .
671
-
672
- # Build wheel extraction stage
673
- DOCKER_BUILDKIT=1 docker buildx build \
674
- --file docker/Dockerfile.rocm_base \
675
- --tag rocm-base-debs:$${BUILDKITE_BUILD_NUMBER} \
676
- --target debs_wheel_release \
677
- --build-arg USE_SCCACHE=1 \
678
- --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
679
- --build-arg SCCACHE_REGION_NAME=us-west-2 \
680
- --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
681
- --load \
682
- .
683
-
684
- # Extract and upload wheels
685
- mkdir -p artifacts/rocm-base-wheels
686
- cid=$(docker create rocm-base-debs:$${BUILDKITE_BUILD_NUMBER})
687
- docker cp $${cid}:/app/debs/. artifacts/rocm-base-wheels/
688
- docker rm $${cid}
689
-
690
- .buildkite/scripts/cache-rocm-base-wheels.sh upload
691
-
692
- # Cache base docker image to ECR
693
- docker push "$${ECR_CACHE_TAG}"
694
-
695
- buildkite-agent meta-data set "rocm-base-image-tag" "$${ECR_CACHE_TAG}"
696
-
697
- echo ""
698
- echo " Build complete - Image and wheels cached"
699
- fi
700
-
701
- artifact_paths:
702
- - "artifacts/rocm-base-wheels/*.whl"
703
- env:
704
- DOCKER_BUILDKIT: "1"
705
- S3_BUCKET: "vllm-wheels"
698
+ artifact_paths:
699
+ - "artifacts/rocm-base-wheels/*.whl"
700
+ env:
701
+ DOCKER_BUILDKIT: "1"
702
+ S3_BUCKET: "vllm-wheels"
703
707
- # ROCm Job 2: Build vLLM ROCm Wheel
708
- - label: ":python: Build vLLM ROCm Wheel - x86_64"
709
- id: build-rocm-vllm-wheel
710
- depends_on:
711
- - step: build-rocm-base-wheels
712
- allow_failure: false
713
- agents:
714
- queue: cpu_queue_release
715
- timeout_in_minutes: 180
716
- commands:
717
- # Download artifacts and prepare Docker image
718
- - |
719
- set -euo pipefail
720
-
721
- # Ensure git tags are up-to-date (Buildkite's default fetch doesn't update tags)
722
- # This fixes version detection when tags are moved/force-pushed
723
- echo "Fetching latest tags from origin..."
724
- git fetch --tags --force origin
725
-
726
- # Log tag information for debugging version detection
727
- echo "========================================"
728
- echo "Git Tag Verification"
729
- echo "========================================"
730
- echo "Current HEAD: $(git rev-parse HEAD)"
731
- echo "git describe --tags: $(git describe --tags 2>/dev/null || echo 'No tags found')"
732
- echo ""
733
- echo "Recent tags (pointing to commits near HEAD):"
734
- git tag -l --sort=-creatordate | head -5
735
- echo "setuptools_scm version detection:"
736
- pip install -q setuptools_scm 2>/dev/null || true
737
- python3 -c "import setuptools_scm; print(' Detected version:', setuptools_scm.get_version())" 2>/dev/null || echo " (setuptools_scm not available in this environment)"
738
- echo "========================================"
739
-
740
- # Download wheel artifacts from current build
741
- echo "Downloading wheel artifacts from current build"
742
- buildkite-agent artifact download "artifacts/rocm-base-wheels/*.whl" .
743
-
744
- # Get ECR image tag from metadata (set by build-rocm-base-wheels)
745
- ECR_IMAGE_TAG="$$(buildkite-agent meta-data get rocm-base-image-tag 2>/dev/null || echo '')"
746
- if [ -z "$${ECR_IMAGE_TAG}" ]; then
747
- echo "ERROR: rocm-base-image-tag metadata not found"
748
- echo "This should have been set by the build-rocm-base-wheels job"
749
- exit 1
750
- fi
751
-
752
- echo "Pulling base Docker image from ECR: $${ECR_IMAGE_TAG}"
753
-
754
- # Login to ECR
755
- aws ecr-public get-login-password --region us-east-1 | \
756
- docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
757
-
758
- # Pull base Docker image from ECR
759
- docker pull "$${ECR_IMAGE_TAG}"
760
-
761
- echo "Loaded base image: $${ECR_IMAGE_TAG}"
762
-
763
- # Prepare base wheels for Docker build context
764
- mkdir -p docker/context/base-wheels
765
- touch docker/context/base-wheels/.keep
766
- cp artifacts/rocm-base-wheels/*.whl docker/context/base-wheels/
767
- echo "Base wheels for vLLM build:"
768
- ls -lh docker/context/base-wheels/
769
-
770
- echo "========================================"
771
- echo "Building vLLM wheel with:"
772
- echo " BUILDKITE_COMMIT: $${BUILDKITE_COMMIT}"
773
- echo " BUILDKITE_BRANCH: $${BUILDKITE_BRANCH}"
774
- echo " BASE_IMAGE: $${ECR_IMAGE_TAG}"
775
- echo "========================================"
776
-
777
- # Build vLLM wheel using local checkout (REMOTE_VLLM=0)
778
- DOCKER_BUILDKIT=1 docker build \
779
- --file docker/Dockerfile.rocm \
780
- --target export_vllm_wheel_release \
781
- --output type=local,dest=rocm-dist \
782
- --build-arg BASE_IMAGE="$${ECR_IMAGE_TAG}" \
783
- --build-arg REMOTE_VLLM=0 \
784
- --build-arg GIT_REPO_CHECK=1 \
785
- --build-arg USE_SCCACHE=1 \
786
- --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
787
- --build-arg SCCACHE_REGION_NAME=us-west-2 \
788
- --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
789
- .
790
- echo "Built vLLM wheel:"
791
- ls -lh rocm-dist/*.whl
792
- # Copy wheel to artifacts directory
793
- mkdir -p artifacts/rocm-vllm-wheel
794
- cp rocm-dist/*.whl artifacts/rocm-vllm-wheel/
795
- echo "Final vLLM wheel:"
796
- ls -lh artifacts/rocm-vllm-wheel/
797
- artifact_paths:
798
- - "artifacts/rocm-vllm-wheel/*.whl"
799
- env:
800
- DOCKER_BUILDKIT: "1"
801
- S3_BUCKET: "vllm-wheels"
704
+ # ROCm Job 2: Build vLLM ROCm Wheel
705
+ - label: ":python: Build vLLM ROCm Wheel - x86_64"
706
+ id: build-rocm-vllm-wheel
707
+ depends_on:
708
+ - step: build-rocm-base-wheels
709
+ allow_failure: false
710
+ agents:
711
+ queue: cpu_queue_release
712
+ timeout_in_minutes: 180
713
+ commands:
714
+ # Download artifacts and prepare Docker image
715
+ - |
716
+ set -euo pipefail
717
+
718
+ # Ensure git tags are up-to-date (Buildkite's default fetch doesn't update tags)
719
+ # This fixes version detection when tags are moved/force-pushed
720
+ echo "Fetching latest tags from origin..."
721
+ git fetch --tags --force origin
722
+
723
+ # Log tag information for debugging version detection
724
+ echo "========================================"
725
+ echo "Git Tag Verification"
726
+ echo "========================================"
727
+ echo "Current HEAD: $(git rev-parse HEAD)"
728
+ echo "git describe --tags: $(git describe --tags 2>/dev/null || echo 'No tags found')"
729
+ echo ""
730
+ echo "Recent tags (pointing to commits near HEAD):"
731
+ git tag -l --sort=-creatordate | head -5
732
+ echo "setuptools_scm version detection:"
733
+ pip install -q setuptools_scm 2>/dev/null || true
734
+ python3 -c "import setuptools_scm; print(' Detected version:', setuptools_scm.get_version())" 2>/dev/null || echo " (setuptools_scm not available in this environment)"
735
+ echo "========================================"
736
+
737
+ # Download wheel artifacts from current build
738
+ echo "Downloading wheel artifacts from current build"
739
+ buildkite-agent artifact download "artifacts/rocm-base-wheels/*.whl" .
740
+
741
+ # Get ECR image tag from metadata (set by build-rocm-base-wheels)
742
+ ECR_IMAGE_TAG="$$(buildkite-agent meta-data get rocm-base-image-tag 2>/dev/null || echo '')"
743
+ if [ -z "$${ECR_IMAGE_TAG}" ]; then
744
+ echo "ERROR: rocm-base-image-tag metadata not found"
745
+ echo "This should have been set by the build-rocm-base-wheels job"
746
+ exit 1
747
+ fi
748
+
749
+ echo "Pulling base Docker image from ECR: $${ECR_IMAGE_TAG}"
750
+
751
+ # Login to ECR
752
+ aws ecr-public get-login-password --region us-east-1 | \
753
+ docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
754
+
755
+ # Pull base Docker image from ECR
756
+ docker pull "$${ECR_IMAGE_TAG}"
757
+
758
+ echo "Loaded base image: $${ECR_IMAGE_TAG}"
759
+
760
+ # Prepare base wheels for Docker build context
761
+ mkdir -p docker/context/base-wheels
762
+ touch docker/context/base-wheels/.keep
763
+ cp artifacts/rocm-base-wheels/*.whl docker/context/base-wheels/
764
+ echo "Base wheels for vLLM build:"
765
+ ls -lh docker/context/base-wheels/
766
+
767
+ echo "========================================"
768
+ echo "Building vLLM wheel with:"
769
+ echo " BUILDKITE_COMMIT: $${BUILDKITE_COMMIT}"
770
+ echo " BUILDKITE_BRANCH: $${BUILDKITE_BRANCH}"
771
+ echo " BASE_IMAGE: $${ECR_IMAGE_TAG}"
772
+ echo "========================================"
773
+
774
+ # Build vLLM wheel using local checkout (REMOTE_VLLM=0)
775
+ DOCKER_BUILDKIT=1 docker build \
776
+ --file docker/Dockerfile.rocm \
777
+ --target export_vllm_wheel_release \
778
+ --output type=local,dest=rocm-dist \
779
+ --build-arg BASE_IMAGE="$${ECR_IMAGE_TAG}" \
780
+ --build-arg REMOTE_VLLM=0 \
781
+ --build-arg GIT_REPO_CHECK=1 \
782
+ --build-arg USE_SCCACHE=1 \
783
+ --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
784
+ --build-arg SCCACHE_REGION_NAME=us-west-2 \
785
+ --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
786
+ .
787
+ echo "Built vLLM wheel:"
788
+ ls -lh rocm-dist/*.whl
789
+ # Copy wheel to artifacts directory
790
+ mkdir -p artifacts/rocm-vllm-wheel
791
+ cp rocm-dist/*.whl artifacts/rocm-vllm-wheel/
792
+ echo "Final vLLM wheel:"
793
+ ls -lh artifacts/rocm-vllm-wheel/
794
+ artifact_paths:
795
+ - "artifacts/rocm-vllm-wheel/*.whl"
796
+ env:
797
+ DOCKER_BUILDKIT: "1"
798
+ S3_BUCKET: "vllm-wheels"
799
803
- # ROCm Job 3: Upload Wheels to S3
804
- - label: ":s3: Upload ROCm Wheels to S3"
805
- id: upload-rocm-wheels
806
- depends_on:
807
- - step: build-rocm-vllm-wheel
808
- allow_failure: false
809
- agents:
810
- queue: cpu_queue_release
811
- timeout_in_minutes: 60
812
- commands:
813
- # Download all wheel artifacts and run upload
814
- - |
815
- set -euo pipefail
800
+ # ROCm Job 3: Upload Wheels to S3
801
+ - label: ":s3: Upload ROCm Wheels to S3"
802
+ id: upload-rocm-wheels
803
+ depends_on:
804
+ - step: build-rocm-vllm-wheel
805
+ allow_failure: false
806
+ agents:
807
+ queue: cpu_queue_release
808
+ timeout_in_minutes: 60
809
+ commands:
810
+ # Download all wheel artifacts and run upload
811
+ - |
812
+ set -euo pipefail
813
817
- # Download artifacts from current build
818
- echo "Downloading artifacts from current build"
819
- buildkite-agent artifact download "artifacts/rocm-base-wheels/*.whl" .
820
- buildkite-agent artifact download "artifacts/rocm-vllm-wheel/*.whl" .
814
+ # Download artifacts from current build
815
+ echo "Downloading artifacts from current build"
816
+ # buildkite-agent artifact download "artifacts/rocm-base-wheels/*.whl" .
817
+ # buildkite-agent artifact download "artifacts/rocm-vllm-wheel/*.whl" .
818
822
- # Run upload script
823
- bash .buildkite/scripts/upload-rocm-wheels.sh
824
- env:
825
- DOCKER_BUILDKIT: "1"
826
- S3_BUCKET: "vllm-wheels"
819
+ # # Run upload script
820
+ bash .buildkite/scripts/upload-rocm-wheels.sh
821
+ env:
822
+ DOCKER_BUILDKIT: "1"
823
+ S3_BUCKET: "vllm-wheels"
824
828
- # ROCm Job 4: Annotate ROCm Wheel Release
829
- - label: ":memo: Annotate ROCm wheel release"
830
- id: annotate-rocm-release
831
- depends_on:
832
- - upload-rocm-wheels
833
- agents:
834
- queue: cpu_queue_release
835
- commands:
836
- - "bash .buildkite/scripts/annotate-rocm-release.sh"
837
- env:
838
- S3_BUCKET: "vllm-wheels"
839
-
840
- # ROCm Job 5: Generate Root Index for ROCm Wheels (for release only)
841
- # This is the job to create https://wheels.vllm.ai/rocm/ index allowing
842
- # users to install with `uv pip install vllm --extra-index-url https://wheels.vllm.ai/rocm/`
843
- - block: "Generate Root Index for ROCm Wheels for Release"
844
- key: block-generate-root-index-rocm-wheels
845
- depends_on: upload-rocm-wheels
846
-
847
- - label: ":package: Generate Root Index for ROCm Wheels for Release"
848
- depends_on: block-generate-root-index-rocm-wheels
849
- id: generate-root-index-rocm-wheels
850
- agents:
851
- queue: cpu_queue_release
852
- commands:
853
- - "bash tools/vllm-rocm/generate-rocm-wheels-root-index.sh"
854
- env:
855
- S3_BUCKET: "vllm-wheels"
856
- VARIANT: "rocm723"
825
+ # ROCm Job 4: Annotate ROCm Wheel Release
826
+ - label: ":memo: Annotate ROCm wheel release"
827
+ id: annotate-rocm-release
828
+ depends_on:
829
+ - upload-rocm-wheels
830
+ agents:
831
+ queue: cpu_queue_release
832
+ commands:
833
+ - "bash .buildkite/scripts/annotate-rocm-release.sh"
834
+ env:
835
+ S3_BUCKET: "vllm-wheels"
836
+
837
+ # ROCm Job 5: Generate Root Index for ROCm Wheels (for release only)
838
+ # This is the job to create https://wheels.vllm.ai/rocm/ index allowing
839
+ # users to install with `uv pip install vllm --extra-index-url https://wheels.vllm.ai/rocm/`
840
+ - block: "Generate Root Index for ROCm Wheels for Release"
841
+ key: block-generate-root-index-rocm-wheels
842
+ depends_on: upload-rocm-wheels
843
+
844
+ - label: ":package: Generate Root Index for ROCm Wheels for Release"
845
+ depends_on: block-generate-root-index-rocm-wheels
846
+ id: generate-root-index-rocm-wheels
847
+ agents:
848
+ queue: cpu_queue_release
849
+ commands:
850
+ - "bash tools/vllm-rocm/generate-rocm-wheels-root-index.sh"
851
+ env:
852
+ S3_BUCKET: "vllm-wheels"
853
+ VARIANT: "rocm723"
854
858
- # ROCm Job 6: Build ROCm Release Docker Image
859
- - label: ":docker: Build release image - x86_64 - ROCm"
860
- id: build-rocm-release-image
861
- depends_on:
862
- - step: block-build-release-images
863
- allow_failure: true
864
- - step: build-rocm-base-wheels
865
- allow_failure: false
866
- agents:
867
- queue: cpu_queue_release
868
- timeout_in_minutes: 60
869
- commands:
870
- - |
871
- set -euo pipefail
872
-
873
- # Login to ECR
874
- aws ecr-public get-login-password --region us-east-1 | \
875
- docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
876
-
877
- # Get ECR image tag from metadata (set by build-rocm-base-wheels)
878
- ECR_IMAGE_TAG="$$(buildkite-agent meta-data get rocm-base-image-tag 2>/dev/null || echo '')"
879
- if [ -z "$${ECR_IMAGE_TAG}" ]; then
880
- echo "ERROR: rocm-base-image-tag metadata not found"
881
- echo "This should have been set by the build-rocm-base-wheels job"
882
- exit 1
883
- fi
884
-
885
- echo "Pulling base Docker image from ECR: $${ECR_IMAGE_TAG}"
886
-
887
- # Pull base Docker image from ECR
888
- docker pull "$${ECR_IMAGE_TAG}"
889
-
890
- echo "Loaded base image: $${ECR_IMAGE_TAG}"
891
-
892
- # Pass the base image ECR tag to downstream steps (nightly publish)
893
- buildkite-agent meta-data set "rocm-base-ecr-tag" "$${ECR_IMAGE_TAG}"
894
-
895
- echo "========================================"
896
- echo "Building vLLM ROCm release image with:"
897
- echo " BASE_IMAGE: $${ECR_IMAGE_TAG}"
898
- echo " BUILDKITE_COMMIT: $${BUILDKITE_COMMIT}"
899
- echo "========================================"
900
-
901
- # Build vLLM ROCm release image using cached base
902
- DOCKER_BUILDKIT=1 docker build \
903
- --build-arg max_jobs=16 \
904
- --build-arg BASE_IMAGE="$${ECR_IMAGE_TAG}" \
905
- --build-arg USE_SCCACHE=1 \
906
- --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
907
- --build-arg SCCACHE_REGION_NAME=us-west-2 \
908
- --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
909
- --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$${BUILDKITE_COMMIT}-rocm \
910
- --target vllm-openai \
911
- --progress plain \
912
- -f docker/Dockerfile.rocm .
913
-
914
- # Push to ECR
915
- docker push public.ecr.aws/q9t5s3a7/vllm-release-repo:$${BUILDKITE_COMMIT}-rocm
916
-
917
- echo ""
918
- echo " Successfully built and pushed ROCm release image"
919
- echo " Image: public.ecr.aws/q9t5s3a7/vllm-release-repo:$${BUILDKITE_COMMIT}-rocm"
920
- echo ""
921
- env:
922
- DOCKER_BUILDKIT: "1"
923
- S3_BUCKET: "vllm-wheels"
855
+ # ROCm Job 6: Build ROCm Release Docker Image
856
+ - label: ":docker: Build release image - x86_64 - ROCm"
857
+ id: build-rocm-release-image
858
+ depends_on:
859
+ - step: block-build-release-images
860
+ allow_failure: true
861
+ - step: build-rocm-base-wheels
862
+ allow_failure: false
863
+ agents:
864
+ queue: cpu_queue_release
865
+ timeout_in_minutes: 60
866
+ commands:
867
+ - |
868
+ set -euo pipefail
869
+
870
+ # Login to ECR
871
+ aws ecr-public get-login-password --region us-east-1 | \
872
+ docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
873
+
874
+ # Get ECR image tag from metadata (set by build-rocm-base-wheels)
875
+ ECR_IMAGE_TAG="$$(buildkite-agent meta-data get rocm-base-image-tag 2>/dev/null || echo '')"
876
+ if [ -z "$${ECR_IMAGE_TAG}" ]; then
877
+ echo "ERROR: rocm-base-image-tag metadata not found"
878
+ echo "This should have been set by the build-rocm-base-wheels job"
879
+ exit 1
880
+ fi
881
+
882
+ echo "Pulling base Docker image from ECR: $${ECR_IMAGE_TAG}"
883
+
884
+ # Pull base Docker image from ECR
885
+ docker pull "$${ECR_IMAGE_TAG}"
886
+
887
+ echo "Loaded base image: $${ECR_IMAGE_TAG}"
888
+
889
+ # Pass the base image ECR tag to downstream steps (nightly publish)
890
+ buildkite-agent meta-data set "rocm-base-ecr-tag" "$${ECR_IMAGE_TAG}"
891
+
892
+ echo "========================================"
893
+ echo "Building vLLM ROCm release image with:"
894
+ echo " BASE_IMAGE: $${ECR_IMAGE_TAG}"
895
+ echo " BUILDKITE_COMMIT: $${BUILDKITE_COMMIT}"
896
+ echo "========================================"
897
+
898
+ # Build vLLM ROCm release image using cached base
899
+ DOCKER_BUILDKIT=1 docker build \
900
+ --build-arg max_jobs=16 \
901
+ --build-arg BASE_IMAGE="$${ECR_IMAGE_TAG}" \
902
+ --build-arg USE_SCCACHE=1 \
903
+ --build-arg SCCACHE_BUCKET_NAME=vllm-build-sccache \
904
+ --build-arg SCCACHE_REGION_NAME=us-west-2 \
905
+ --build-arg SCCACHE_S3_NO_CREDENTIALS=0 \
906
+ --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$${BUILDKITE_COMMIT}-rocm \
907
+ --target vllm-openai \
908
+ --progress plain \
909
+ -f docker/Dockerfile.rocm .
910
+
911
+ # Push to ECR
912
+ docker push public.ecr.aws/q9t5s3a7/vllm-release-repo:$${BUILDKITE_COMMIT}-rocm
913
+
914
+ echo ""
915
+ echo " Successfully built and pushed ROCm release image"
916
+ echo " Image: public.ecr.aws/q9t5s3a7/vllm-release-repo:$${BUILDKITE_COMMIT}-rocm"
917
+ echo ""
918
+ env:
919
+ DOCKER_BUILDKIT: "1"
920
+ S3_BUCKET: "vllm-wheels"
921
925
- - label: "Publish nightly XPU image to DockerHub"
926
- depends_on:
927
- - create-manifest-xpu
928
- if: build.env("NIGHTLY") == "1"
929
- agents:
930
- queue: small_cpu_queue_release
931
- commands:
932
- - "bash .buildkite/scripts/xpu/push-nightly-builds-xpu.sh"
933
- - "bash .buildkite/scripts/cleanup-nightly-builds.sh nightly- vllm/vllm-openai-xpu"
934
- plugins:
935
- - docker-login#v3.0.0:
936
- username: vllmbot
937
- password-env: DOCKERHUB_TOKEN
938
- env:
939
- DOCKER_BUILDKIT: "1"
940
- DOCKERHUB_USERNAME: "vllmbot"
922
+ - label: "Publish nightly XPU image to DockerHub"
923
+ depends_on:
924
+ - create-manifest-xpu
925
+ if: build.env("NIGHTLY") == "1"
926
+ agents:
927
+ queue: small_cpu_queue_release
928
+ commands:
929
+ - "bash .buildkite/scripts/xpu/push-nightly-builds-xpu.sh"
930
+ - "bash .buildkite/scripts/cleanup-nightly-builds.sh nightly- vllm/vllm-openai-xpu"
931
+ plugins:
932
+ - docker-login#v3.0.0:
933
+ username: vllmbot
934
+ password-env: DOCKERHUB_TOKEN
935
+ env:
936
+ DOCKER_BUILDKIT: "1"
937
+ DOCKERHUB_USERNAME: "vllmbot"
938
942
- - label: "Publish nightly ROCm image to DockerHub"
943
- depends_on:
944
- - build-rocm-release-image
945
- if: build.env("NIGHTLY") == "1"
946
- agents:
947
- queue: small_cpu_queue_release
948
- commands:
949
- - "bash .buildkite/scripts/push-nightly-builds-rocm.sh"
950
- # Clean up old nightly builds (keep only last 14)
951
- - "bash .buildkite/scripts/cleanup-nightly-builds.sh nightly- vllm/vllm-openai-rocm"
952
- - "bash .buildkite/scripts/cleanup-nightly-builds.sh base-nightly- vllm/vllm-openai-rocm"
953
- plugins:
954
- - docker-login#v3.0.0:
955
- username: vllmbot
956
- password-env: DOCKERHUB_TOKEN
957
- env:
958
- DOCKER_BUILDKIT: "1"
959
- DOCKERHUB_USERNAME: "vllmbot"
939
+ - label: "Publish nightly ROCm image to DockerHub"
940
+ depends_on:
941
+ - build-rocm-release-image
942
+ if: build.env("NIGHTLY") == "1"
943
+ agents:
944
+ queue: small_cpu_queue_release
945
+ commands:
946
+ - "bash .buildkite/scripts/push-nightly-builds-rocm.sh"
947
+ # Clean up old nightly builds (keep only last 14)
948
+ - "bash .buildkite/scripts/cleanup-nightly-builds.sh nightly- vllm/vllm-openai-rocm"
949
+ - "bash .buildkite/scripts/cleanup-nightly-builds.sh base-nightly- vllm/vllm-openai-rocm"
950
+ plugins:
951
+ - docker-login#v3.0.0:
952
+ username: vllmbot
953
+ password-env: DOCKERHUB_TOKEN
954
+ env:
955
+ DOCKER_BUILDKIT: "1"
956
+ DOCKERHUB_USERNAME: "vllmbot"
957
958
# =============================================================================
959
# Publish to DockerHub and PyPI (at the end so all builds complete first)