11name : Release Docker Images
2+ #
3+ # This workflow builds and publishes both framework and runtime Docker images:
4+ #
5+ # Framework images (full development environment):
6+ # - lmsysorg/sglang:v{version}, lmsysorg/sglang:latest
7+ # - lmsysorg/sglang:v{version}-cu129-{amd64,arm64}
8+ #
9+ # Runtime images (production-optimized, ~50% smaller):
10+ # - lmsysorg/sglang:v{version}-runtime, lmsysorg/sglang:latest-runtime
11+ # - lmsysorg/sglang:v{version}-cu129-{amd64,arm64}-runtime
12+ #
213on :
314 push :
415 branches :
@@ -45,12 +56,13 @@ jobs:
4556 username : ${{ secrets.DOCKERHUB_USERNAME }}
4657 password : ${{ secrets.DOCKERHUB_TOKEN }}
4758
48- - name : Build and Push AMD64
59+ - name : Build and Push AMD64 Framework
4960 run : |
5061 version=$(cat python/sglang/version.py | cut -d'"' -f2)
5162 tag=v${version}-cu129-amd64
5263
5364 docker buildx build \
65+ --target framework \
5466 --platform linux/amd64 \
5567 --push \
5668 -f docker/Dockerfile \
6173 --no-cache \
6274 .
6375
76+ - name : Build and Push AMD64 Runtime
77+ run : |
78+ version=$(cat python/sglang/version.py | cut -d'"' -f2)
79+ tag=v${version}-cu129-amd64-runtime
80+
81+ docker buildx build \
82+ --target runtime \
83+ --platform linux/amd64 \
84+ --push \
85+ -f docker/Dockerfile \
86+ --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} \
87+ --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} \
88+ --build-arg GRACE_BLACKWELL=${{ matrix.variant.grace_blackwell }} \
89+ -t lmsysorg/sglang:${tag} \
90+ --no-cache \
91+ .
92+
93+ - name : Build and Push AMD64 Runtime (CUDA 13)
94+ run : |
95+ version=$(cat python/sglang/version.py | cut -d'"' -f2)
96+ tag=v${version}-cu130-amd64-runtime
97+
98+ docker buildx build \
99+ --target runtime \
100+ --platform linux/amd64 \
101+ --push \
102+ -f docker/Dockerfile \
103+ --build-arg CUDA_VERSION=13.0.1 \
104+ --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} \
105+ --build-arg GRACE_BLACKWELL=0 \
106+ -t lmsysorg/sglang:${tag} \
107+ --no-cache \
108+ .
109+
64110 publish-arm64 :
65111 if : github.repository == 'sgl-project/sglang'
66112 environment : " prod"
@@ -87,12 +133,30 @@ jobs:
87133 username : ${{ secrets.DOCKERHUB_USERNAME }}
88134 password : ${{ secrets.DOCKERHUB_TOKEN }}
89135
90- - name : Build and Push ARM64
136+ - name : Build and Push ARM64 Framework
91137 run : |
92138 version=$(cat python/sglang/version.py | cut -d'"' -f2)
93139 tag=v${version}-cu129-arm64
94140
95141 docker buildx build \
142+ --target framework \
143+ --platform linux/arm64 \
144+ --push \
145+ -f docker/Dockerfile \
146+ --build-arg CUDA_VERSION=${{ matrix.variant.cuda_version }} \
147+ --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} \
148+ --build-arg GRACE_BLACKWELL=${{ matrix.variant.grace_blackwell }} \
149+ -t lmsysorg/sglang:${tag} \
150+ --no-cache \
151+ .
152+
153+ - name : Build and Push ARM64 Runtime
154+ run : |
155+ version=$(cat python/sglang/version.py | cut -d'"' -f2)
156+ tag=v${version}-cu129-arm64-runtime
157+
158+ docker buildx build \
159+ --target runtime \
96160 --platform linux/arm64 \
97161 --push \
98162 -f docker/Dockerfile \
@@ -103,6 +167,23 @@ jobs:
103167 --no-cache \
104168 .
105169
170+ - name : Build and Push ARM64 Runtime (CUDA 13)
171+ run : |
172+ version=$(cat python/sglang/version.py | cut -d'"' -f2)
173+ tag=v${version}-cu130-arm64-runtime
174+
175+ docker buildx build \
176+ --target runtime \
177+ --platform linux/arm64 \
178+ --push \
179+ -f docker/Dockerfile \
180+ --build-arg CUDA_VERSION=13.0.1 \
181+ --build-arg BUILD_TYPE=${{ matrix.variant.build_type }} \
182+ --build-arg GRACE_BLACKWELL=1 \
183+ -t lmsysorg/sglang:${tag} \
184+ --no-cache \
185+ .
186+
106187 create-manifests :
107188 runs-on : ubuntu-22.04
108189 needs : [publish-x86, publish-arm64]
@@ -125,14 +206,38 @@ jobs:
125206 run : |
126207 version=$(cat python/sglang/version.py | cut -d'"' -f2)
127208
128- # Create versioned manifest
209+ # Create versioned framework manifest (default)
129210 docker buildx imagetools create \
130211 -t lmsysorg/sglang:v${version} \
131212 lmsysorg/sglang:v${version}-cu129-amd64 \
132213 lmsysorg/sglang:v${version}-cu129-arm64
133214
134- # Create latest manifest
215+ # Create latest framework manifest (default)
135216 docker buildx imagetools create \
136217 -t lmsysorg/sglang:latest \
137218 lmsysorg/sglang:v${version}-cu129-amd64 \
138219 lmsysorg/sglang:v${version}-cu129-arm64
220+
221+ # Create versioned runtime manifest
222+ docker buildx imagetools create \
223+ -t lmsysorg/sglang:v${version}-runtime \
224+ lmsysorg/sglang:v${version}-cu129-amd64-runtime \
225+ lmsysorg/sglang:v${version}-cu129-arm64-runtime
226+
227+ # Create latest runtime manifest
228+ docker buildx imagetools create \
229+ -t lmsysorg/sglang:latest-runtime \
230+ lmsysorg/sglang:v${version}-cu129-amd64-runtime \
231+ lmsysorg/sglang:v${version}-cu129-arm64-runtime
232+
233+ # Create versioned CUDA 13 runtime manifest
234+ docker buildx imagetools create \
235+ -t lmsysorg/sglang:v${version}-cu130-runtime \
236+ lmsysorg/sglang:v${version}-cu130-amd64-runtime \
237+ lmsysorg/sglang:v${version}-cu130-arm64-runtime
238+
239+ # Create latest CUDA 13 runtime manifest
240+ docker buildx imagetools create \
241+ -t lmsysorg/sglang:latest-cu130-runtime \
242+ lmsysorg/sglang:v${version}-cu130-amd64-runtime \
243+ lmsysorg/sglang:v${version}-cu130-arm64-runtime
0 commit comments