[CI] release-docker-deepseek-v4: select which flavors to push (#23730)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kangyan-Zhou
2026-04-25 14:09:34 -07:00
committed by GitHub
co-authored by Claude Opus 4.7
parent 0c826374a8
commit 921e14dcac
@@ -12,35 +12,73 @@ on:
description: "Docker Hub destination repository. Default: lmsysorg/sglang-staging (set to lmsysorg/sglang for production release)."
required: false
default: "lmsysorg/sglang-staging"
build_hopper:
description: "Build and push the Hopper (H200) image."
required: false
type: boolean
default: true
build_blackwell:
description: "Build and push the Blackwell (B200) image."
required: false
type: boolean
default: true
build_b300:
description: "Build and push the B300 image."
required: false
type: boolean
default: true
build_grace_blackwell:
description: "Build and push the Grace Blackwell (ARM) image."
required: false
type: boolean
default: true
concurrency:
group: release-docker-deepseek-v4-${{ inputs.repository }}
cancel-in-progress: true
jobs:
build-deepseek-v4:
build-matrix:
if: ${{ github.repository == 'sgl-project/sglang' }}
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set.outputs.include }}
steps:
- id: set
env:
BUILD_HOPPER: ${{ inputs.build_hopper }}
BUILD_BLACKWELL: ${{ inputs.build_blackwell }}
BUILD_B300: ${{ inputs.build_b300 }}
BUILD_GRACE_BLACKWELL: ${{ inputs.build_grace_blackwell }}
run: |
entries=()
if [ "$BUILD_HOPPER" = "true" ]; then
entries+=('{"runner":"x64-docker-build-node","platform":"linux/amd64","dockerfile":"docker/deepseek_v4_h200.Dockerfile","tag":"deepseek-v4-hopper"}')
fi
if [ "$BUILD_BLACKWELL" = "true" ]; then
entries+=('{"runner":"x64-docker-build-node","platform":"linux/amd64","dockerfile":"docker/deepseek_v4_b200.Dockerfile","tag":"deepseek-v4-blackwell"}')
fi
if [ "$BUILD_B300" = "true" ]; then
entries+=('{"runner":"x64-docker-build-node","platform":"linux/amd64","dockerfile":"docker/deepseek_v4_b300.Dockerfile","tag":"deepseek-v4-b300"}')
fi
if [ "$BUILD_GRACE_BLACKWELL" = "true" ]; then
entries+=('{"runner":"arm-docker-build-node","platform":"linux/arm64","dockerfile":"docker/deepseek_v4_grace_blackwell.Dockerfile","tag":"deepseek-v4-grace-blackwell"}')
fi
if [ ${#entries[@]} -eq 0 ]; then
echo "::error::At least one build_* input must be true."
exit 1
fi
joined=$(IFS=,; echo "${entries[*]}")
echo "include=[${joined}]" >> "$GITHUB_OUTPUT"
echo "Selected matrix: [${joined}]"
build-deepseek-v4:
needs: build-matrix
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
include: ${{ fromJson(needs.build-matrix.outputs.include) }}
steps:
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache