From 0c826374a85ae68d3f703f1a6e45a31af2731ca7 Mon Sep 17 00:00:00 2001 From: Kangyan-Zhou Date: Sat, 25 Apr 2026 11:45:23 -0700 Subject: [PATCH] ci: add docker release workflow for deepseek_v4 branch (#23728) --- .../workflows/release-docker-deepseek-v4.yml | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .github/workflows/release-docker-deepseek-v4.yml diff --git a/.github/workflows/release-docker-deepseek-v4.yml b/.github/workflows/release-docker-deepseek-v4.yml new file mode 100644 index 000000000..a5bd5290f --- /dev/null +++ b/.github/workflows/release-docker-deepseek-v4.yml @@ -0,0 +1,93 @@ +name: Build and Push DeepSeek-V4 Docker Images + +# Builds the 4 Dockerfiles added in #23600 from the deepseek_v4 branch and +# pushes them to Docker Hub. Each Dockerfile is single-arch and does its own +# `git clone -b deepseek_v4` inside, so no build context source is required +# beyond the Dockerfiles themselves and `--no-cache` is mandatory. + +on: + workflow_dispatch: + inputs: + repository: + description: "Docker Hub destination repository. Default: lmsysorg/sglang-staging (set to lmsysorg/sglang for production release)." + required: false + default: "lmsysorg/sglang-staging" + +concurrency: + group: release-docker-deepseek-v4-${{ inputs.repository }} + cancel-in-progress: true + +jobs: + build-deepseek-v4: + if: ${{ github.repository == 'sgl-project/sglang' }} + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + include: + - runner: x64-docker-build-node + platform: linux/amd64 + dockerfile: docker/deepseek_v4_h200.Dockerfile + tag: deepseek-v4-hopper + - runner: x64-docker-build-node + platform: linux/amd64 + dockerfile: docker/deepseek_v4_b200.Dockerfile + tag: deepseek-v4-blackwell + - runner: x64-docker-build-node + platform: linux/amd64 + dockerfile: docker/deepseek_v4_b300.Dockerfile + tag: deepseek-v4-b300 + - runner: arm-docker-build-node + platform: linux/arm64 + dockerfile: docker/deepseek_v4_grace_blackwell.Dockerfile + tag: deepseek-v4-grace-blackwell + steps: + - name: Delete huge unnecessary tools folder + run: rm -rf /opt/hostedtoolcache + + - name: Cleanup workspace (remove root-owned files from prior runs) + run: sudo rm -rf "$GITHUB_WORKSPACE"/* || true + + - name: Checkout deepseek_v4 sources + uses: actions/checkout@v4 + with: + ref: deepseek_v4 + + - name: Free disk space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + docker-images: true + android: true + dotnet: true + haskell: true + large-packages: true + swap-storage: true + + - name: Prune Docker to reclaim disk space + run: | + docker buildx prune --filter "until=72h" -f + docker system prune -af --filter "until=72h" + docker volume prune -af + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and Push DeepSeek-V4 image + run: | + IMAGE="${{ inputs.repository }}:${{ matrix.tag }}" + echo "Will push: ${IMAGE}" + docker buildx build \ + --platform ${{ matrix.platform }} \ + -f ${{ matrix.dockerfile }} \ + -t "${IMAGE}" \ + --push \ + --no-cache \ + . + echo "Published ${IMAGE}"