ci: add docker release workflow for deepseek_v4 branch (#23728)

This commit is contained in:
Kangyan-Zhou
2026-04-25 11:45:23 -07:00
committed by GitHub
parent acaa35664d
commit 0c826374a8
@@ -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}"