From 8ce68370b57327a1795ac92d07ce676616ba4596 Mon Sep 17 00:00:00 2001 From: Xinyu Jiang Date: Wed, 22 Jul 2026 17:30:09 -0700 Subject: [PATCH] [AMD] Build Miles nightly ROCm images with docker/build.py and test ROCm 7.2 (#31757) --- ...yml => nightly-test-amd-miles-rocm720.yml} | 8 ++-- ...lease-docker-amd-miles-rocm700-nightly.yml | 44 ++++++++----------- ...lease-docker-amd-miles-rocm720-nightly.yml | 38 +++++++--------- 3 files changed, 39 insertions(+), 51 deletions(-) rename .github/workflows/{nightly-test-amd-miles-rocm700.yml => nightly-test-amd-miles-rocm720.yml} (95%) diff --git a/.github/workflows/nightly-test-amd-miles-rocm700.yml b/.github/workflows/nightly-test-amd-miles-rocm720.yml similarity index 95% rename from .github/workflows/nightly-test-amd-miles-rocm700.yml rename to .github/workflows/nightly-test-amd-miles-rocm720.yml index e6fec83dc..94ea01c75 100644 --- a/.github/workflows/nightly-test-amd-miles-rocm700.yml +++ b/.github/workflows/nightly-test-amd-miles-rocm720.yml @@ -1,4 +1,4 @@ -name: Nightly Test Miles (AMD ROCm 7.0) +name: Nightly Test Miles (AMD ROCm 7.2) on: schedule: @@ -7,7 +7,7 @@ on: workflow_dispatch: inputs: image_tag: - description: "Override miles image tag (e.g. miles-rocm700-mi35x-20260621); empty = newest by date" + description: "Override miles image tag (e.g. miles-rocm720-mi35x-20260621); empty = newest by date" required: false type: string default: "" @@ -46,10 +46,10 @@ jobs: username: ${{ secrets.DOCKERHUB_AMD_USERNAME }} password: ${{ secrets.DOCKERHUB_AMD_TOKEN }} - - name: Resolve newest miles ROCm 7.0 image + - name: Resolve newest miles ROCm 7.2 image run: | repo="rocm/sgl-dev" - base="miles-rocm700-mi35x" + base="miles-rocm720-mi35x" tag="${{ inputs.image_tag }}" if [ -z "${tag}" ]; then # Walk back from today; the build job pushes a dated tag at 12:00 UTC. diff --git a/.github/workflows/release-docker-amd-miles-rocm700-nightly.yml b/.github/workflows/release-docker-amd-miles-rocm700-nightly.yml index 1f726b8eb..997e45477 100644 --- a/.github/workflows/release-docker-amd-miles-rocm700-nightly.yml +++ b/.github/workflows/release-docker-amd-miles-rocm700-nightly.yml @@ -14,17 +14,14 @@ jobs: if: github.repository == 'sgl-project/sglang' runs-on: amd-docker-scale environment: "prod" + permissions: + contents: read strategy: fail-fast: false matrix: - include: - - gpu_arch: gfx950 - rocm_tag: rocm700-mi35x - sglang_image_repo: rocm/sgl-dev - sglang_image_tag: v0.5.14-rocm700-mi35x-20260627 - - gpu_arch: gfx942 - rocm_tag: rocm700-mi30x - sglang_image_tag: v0.5.10-rocm700-mi30x + variant: + - rocm700-mi35x + - rocm700-mi30x steps: - name: Checkout miles repository uses: actions/checkout@v4 @@ -32,13 +29,21 @@ jobs: repository: radixark/miles ref: main fetch-depth: 0 + persist-credentials: false + + - name: Record miles commit + run: echo "Building from miles main @ $(git rev-parse HEAD)" - name: Set date run: echo "DATE=$(date +%Y%m%d)" >> $GITHUB_ENV - - name: Record miles commit - id: miles - run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + - name: Install docker/build.py dependencies + run: python3 -m pip install --quiet typer + + - name: Build image via miles docker/build.py and tag with date + run: | + python3 docker/build.py --variant ${{ matrix.variant }} --image-tag custom --custom-tag miles + docker tag rocm/sgl-dev:miles-${{ matrix.variant }} rocm/sgl-dev:miles-${{ matrix.variant }}-${DATE} - name: Login to Docker Hub (AMD) uses: docker/login-action@v2 @@ -46,18 +51,5 @@ jobs: username: ${{ secrets.DOCKERHUB_AMD_USERNAME }} password: ${{ secrets.DOCKERHUB_AMD_TOKEN }} - - name: Build and push miles image to rocm/sgl-dev - run: | - base="miles-${{ matrix.rocm_tag }}" - dated="${base}-${{ env.DATE }}" - echo "IMAGE_TAG=${dated}" >> $GITHUB_ENV - echo "Building rocm/sgl-dev:${dated} from miles main @ ${{ steps.miles.outputs.sha }}" - docker build . \ - -f docker/Dockerfile.rocm \ - --build-arg GPU_ARCH=${{ matrix.gpu_arch }} \ - --build-arg SGLANG_IMAGE_REPO=${{ matrix.sglang_image_repo || 'lmsysorg/sglang' }} \ - --build-arg SGLANG_IMAGE_TAG=${{ matrix.sglang_image_tag }} \ - --build-arg MILES_COMMIT=${{ steps.miles.outputs.sha }} \ - -t rocm/sgl-dev:${dated} \ - --no-cache - docker push rocm/sgl-dev:${dated} + - name: Push dated tag + run: docker push rocm/sgl-dev:miles-${{ matrix.variant }}-${DATE} diff --git a/.github/workflows/release-docker-amd-miles-rocm720-nightly.yml b/.github/workflows/release-docker-amd-miles-rocm720-nightly.yml index 75044f332..5f2db0ae4 100644 --- a/.github/workflows/release-docker-amd-miles-rocm720-nightly.yml +++ b/.github/workflows/release-docker-amd-miles-rocm720-nightly.yml @@ -14,13 +14,13 @@ jobs: if: github.repository == 'sgl-project/sglang' runs-on: amd-docker-scale environment: "prod" + permissions: + contents: read strategy: fail-fast: false matrix: - include: - - gpu_arch: gfx950 - rocm_tag: rocm720-mi35x - sglang_image_tag: v0.5.10-rocm720-mi35x + variant: + - rocm720-mi35x steps: - name: Checkout miles repository uses: actions/checkout@v4 @@ -28,13 +28,21 @@ jobs: repository: radixark/miles ref: main fetch-depth: 0 + persist-credentials: false + + - name: Record miles commit + run: echo "Building from miles main @ $(git rev-parse HEAD)" - name: Set date run: echo "DATE=$(date +%Y%m%d)" >> $GITHUB_ENV - - name: Record miles commit - id: miles - run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + - name: Install docker/build.py dependencies + run: python3 -m pip install --quiet typer + + - name: Build image via miles docker/build.py and tag with date + run: | + python3 docker/build.py --variant ${{ matrix.variant }} --image-tag custom --custom-tag miles + docker tag rocm/sgl-dev:miles-${{ matrix.variant }} rocm/sgl-dev:miles-${{ matrix.variant }}-${DATE} - name: Login to Docker Hub (AMD) uses: docker/login-action@v2 @@ -42,17 +50,5 @@ jobs: username: ${{ secrets.DOCKERHUB_AMD_USERNAME }} password: ${{ secrets.DOCKERHUB_AMD_TOKEN }} - - name: Build and push miles image to rocm/sgl-dev - run: | - base="miles-${{ matrix.rocm_tag }}" - dated="${base}-${{ env.DATE }}" - echo "IMAGE_TAG=${dated}" >> $GITHUB_ENV - echo "Building rocm/sgl-dev:${dated} from miles main @ ${{ steps.miles.outputs.sha }}" - docker build . \ - -f docker/Dockerfile.rocm \ - --build-arg GPU_ARCH=${{ matrix.gpu_arch }} \ - --build-arg SGLANG_IMAGE_TAG=${{ matrix.sglang_image_tag }} \ - --build-arg MILES_COMMIT=${{ steps.miles.outputs.sha }} \ - -t rocm/sgl-dev:${dated} \ - --no-cache - docker push rocm/sgl-dev:${dated} + - name: Push dated tag + run: docker push rocm/sgl-dev:miles-${{ matrix.variant }}-${DATE}