diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml index c7bc8194ebce..4c12bc81c76a 100644 --- a/.github/workflows/release-docker.yml +++ b/.github/workflows/release-docker.yml @@ -47,32 +47,17 @@ jobs: - name: Build and Push AMD64 run: | version=$(cat python/sglang/version.py | cut -d'"' -f2) - - if [ "${{ matrix.variant.cuda_version }}" = "12.6.1" ]; then - cuda_tag="cu126" - elif [ "${{ matrix.variant.cuda_version }}" = "12.8.1" ]; then - cuda_tag="cu128" - elif [ "${{ matrix.variant.cuda_version }}" = "12.9.1" ]; then - cuda_tag="cu129" - else - echo "Unsupported CUDA version" - exit 1 - fi - - tag=v${version}-${cuda_tag} - - if [ "${{ matrix.variant.build_type }}" = "all" ]; then - tag_suffix="" - else - echo "Unsupported build type" - exit 1 - fi - - if [ "${{ matrix.variant.cuda_version }}" = "12.9.1" ]; then - docker buildx build --platform linux/amd64 --push -f docker/Dockerfile --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} -t lmsysorg/sglang:${tag}${tag_suffix} -t lmsysorg/sglang:latest --no-cache . - else - docker buildx build --platform linux/amd64 --push -f docker/Dockerfile --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} -t lmsysorg/sglang:${tag}${tag_suffix} --no-cache . - fi + tag=v${version}-cu129-amd64 + + docker buildx build \ + --platform linux/amd64 \ + --push \ + -f docker/Dockerfile \ + --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} \ + --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} \ + -t lmsysorg/sglang:${tag} \ + --no-cache \ + . publish-arm64: if: github.repository == 'sgl-project/sglang' @@ -102,15 +87,48 @@ jobs: - name: Build and Push ARM64 run: | version=$(cat python/sglang/version.py | cut -d'"' -f2) + tag=v${version}-cu129-arm64 + + docker buildx build \ + --platform linux/arm64 \ + --push \ + -f docker/Dockerfile \ + --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} \ + --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} \ + -t lmsysorg/sglang:${tag} \ + --no-cache \ + . + + create-manifests: + runs-on: ubuntu-22.04 + needs: [publish-x86, publish-arm64] + if: github.repository == 'sgl-project/sglang' + environment: "prod" + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - if [ "${{ matrix.variant.cuda_version }}" = "12.9.1" ]; then - cuda_tag="cu129" - else - echo "Unsupported CUDA version" - exit 1 - fi + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - tag=v${version}-${cuda_tag} - tag_suffix="-gb200" + - name: Create multi-arch manifests + run: | + version=$(cat python/sglang/version.py | cut -d'"' -f2) - docker buildx build --platform linux/arm64 --push -f docker/Dockerfile --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} -t lmsysorg/sglang:${tag}${tag_suffix} --no-cache . + # Create versioned manifest + docker buildx imagetools create \ + -t lmsysorg/sglang:v${version} \ + lmsysorg/sglang:v${version}-cu129-amd64 \ + lmsysorg/sglang:v${version}-cu129-arm64 + + # Create latest manifest + docker buildx imagetools create \ + -t lmsysorg/sglang:latest \ + lmsysorg/sglang:v${version}-cu129-amd64 \ + lmsysorg/sglang:v${version}-cu129-arm64