ci: add docker release workflow for deepseek_v4 branch (#23728)
This commit is contained in:
@@ -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}"
|
||||||
Reference in New Issue
Block a user