Skip to content

Commit 46cc862

Browse files
Add wanda ray image builds for Docker Hub
This adds wanda-based builds for ray Docker Hub images. Changes: - Add ray-image-cpu/cuda.wanda.yaml for ray images - Add ray-extra-image-cpu/cuda.wanda.yaml for extra dependencies - Add ray-llm-image-cuda.wanda.yaml and ray-llm-extra variant - Add push_ray_image.py for pushing to Docker Hub via crane - Update build.rayci.yml with wanda image build and push steps Topic: ray-image Relative: ray-wheel Labels: draft Signed-off-by: andrew <[email protected]>
1 parent 288cadb commit 46cc862

11 files changed

+1000
-47
lines changed

.buildkite/build.rayci.yml

Lines changed: 279 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -159,89 +159,317 @@ steps:
159159
depends_on: manylinux-x86_64
160160
job_env: manylinux-x86_64
161161

162-
- label: ":tapioca: build: ray py{{matrix}} docker (x86_64)"
163-
key: ray_images
162+
- name: ray-image-cpu-build
163+
label: "wanda: ray py{{matrix}} cpu (x86_64)"
164+
wanda: ci/docker/ray-image-cpu.wanda.yaml
165+
matrix:
166+
- "3.10"
167+
- "3.11"
168+
- "3.12"
169+
env:
170+
PYTHON_VERSION: "{{matrix}}"
171+
ARCH_SUFFIX: ""
164172
tags:
165173
- python_dependencies
166174
- docker
167175
- oss
168-
instance_type: medium
169-
commands:
170-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
171-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
172-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
173-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
174-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
175-
--platform cu12.9.1-cudnn
176-
--platform cpu
177-
--image-type ray --upload
178176
depends_on:
179-
- manylinux-x86_64
180-
- forge
181-
- raycudabase
177+
- ray-wheel-build
182178
- raycpubase
179+
180+
# Push ray CPU images to Docker Hub
181+
# Gating: only on releases/* OR (master AND nightly)
182+
- label: ":docker: push: ray py{{matrix}} cpu (x86_64)"
183+
key: ray_images_cpu_push
184+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
185+
instance_type: small
186+
commands:
187+
- bazel run //.buildkite:copy_files -- --destination docker_login
188+
- bazel run //ci/ray_ci/automation:push_ray_image --
189+
--python-version {{matrix}}
190+
--platform cpu
191+
--image-type ray
192+
--upload
183193
matrix:
184194
- "3.10"
185195
- "3.11"
186196
- "3.12"
197+
depends_on:
198+
- ray-image-cpu-build
199+
tags:
200+
- python_dependencies
201+
- docker
202+
- skip-on-premerge
187203

188-
- label: ":tapioca: build: ray-extra py{{matrix}} docker (x86_64)"
189-
key: ray_extra_images
204+
- name: ray-image-cuda-build
205+
label: "wanda: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
206+
wanda: ci/docker/ray-image-cuda.wanda.yaml
207+
matrix:
208+
setup:
209+
python:
210+
- "3.10"
211+
- "3.11"
212+
- "3.12"
213+
cuda:
214+
- "11.7.1-cudnn8"
215+
- "11.8.0-cudnn8"
216+
- "12.1.1-cudnn8"
217+
- "12.3.2-cudnn9"
218+
- "12.4.1-cudnn"
219+
- "12.5.1-cudnn"
220+
- "12.6.3-cudnn"
221+
- "12.8.1-cudnn"
222+
- "12.9.1-cudnn"
223+
env:
224+
PYTHON_VERSION: "{{matrix.python}}"
225+
CUDA_VERSION: "{{matrix.cuda}}"
226+
ARCH_SUFFIX: ""
190227
tags:
191228
- python_dependencies
192229
- docker
193230
- oss
194-
instance_type: medium
231+
depends_on:
232+
- ray-wheel-build
233+
- raycudabase
234+
235+
# Push ray CUDA images to Docker Hub
236+
# Gating: only on releases/* OR (master AND nightly)
237+
- label: ":docker: push: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
238+
key: ray_images_cuda_push
239+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
240+
instance_type: small
195241
commands:
196-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
197-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
198-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
199-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
200-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
201-
--platform cu12.9.1-cudnn
202-
--platform cpu
203-
--image-type ray-extra --upload
242+
- bazel run //.buildkite:copy_files -- --destination docker_login
243+
- bazel run //ci/ray_ci/automation:push_ray_image --
244+
--python-version {{matrix.python}}
245+
--platform cu{{matrix.cuda}}
246+
--image-type ray
247+
--upload
248+
matrix:
249+
setup:
250+
python:
251+
- "3.10"
252+
- "3.11"
253+
- "3.12"
254+
cuda:
255+
- "11.7.1-cudnn8"
256+
- "11.8.0-cudnn8"
257+
- "12.1.1-cudnn8"
258+
- "12.3.2-cudnn9"
259+
- "12.4.1-cudnn"
260+
- "12.5.1-cudnn"
261+
- "12.6.3-cudnn"
262+
- "12.8.1-cudnn"
263+
- "12.9.1-cudnn"
204264
depends_on:
205-
- manylinux-x86_64
206-
- forge
207-
- raycpubaseextra
208-
- raycudabaseextra
265+
- ray-image-cuda-build
266+
tags:
267+
- python_dependencies
268+
- docker
269+
- skip-on-premerge
270+
271+
- name: ray-extra-image-cpu-build
272+
label: "wanda: ray-extra py{{matrix}} cpu (x86_64)"
273+
wanda: ci/docker/ray-extra-image-cpu.wanda.yaml
209274
matrix:
210275
- "3.10"
211276
- "3.11"
212277
- "3.12"
278+
env:
279+
PYTHON_VERSION: "{{matrix}}"
280+
ARCH_SUFFIX: ""
281+
tags:
282+
- python_dependencies
283+
- docker
284+
- oss
285+
depends_on:
286+
- ray-wheel-build
287+
- raycpubaseextra
213288

214-
- label: ":tapioca: build: ray-llm py{{matrix}} docker (x86_64)"
289+
- name: ray-extra-image-cuda-build
290+
label: "wanda: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
291+
wanda: ci/docker/ray-extra-image-cuda.wanda.yaml
292+
matrix:
293+
setup:
294+
python:
295+
- "3.10"
296+
- "3.11"
297+
- "3.12"
298+
cuda:
299+
- "11.7.1-cudnn8"
300+
- "11.8.0-cudnn8"
301+
- "12.1.1-cudnn8"
302+
- "12.3.2-cudnn9"
303+
- "12.4.1-cudnn"
304+
- "12.5.1-cudnn"
305+
- "12.6.3-cudnn"
306+
- "12.8.1-cudnn"
307+
- "12.9.1-cudnn"
308+
env:
309+
PYTHON_VERSION: "{{matrix.python}}"
310+
CUDA_VERSION: "{{matrix.cuda}}"
311+
ARCH_SUFFIX: ""
215312
tags:
216313
- python_dependencies
217314
- docker
218315
- oss
219-
instance_type: medium
220-
commands:
221-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
222-
--platform cu12.8.1-cudnn --image-type ray-llm --upload
223316
depends_on:
224-
- manylinux-x86_64
225-
- forge
226-
- ray-llmbase
317+
- ray-wheel-build
318+
- raycudabaseextra
319+
320+
- name: ray-llm-image-cuda-build
321+
label: "wanda: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
322+
wanda: ci/docker/ray-llm-image-cuda.wanda.yaml
227323
matrix:
228-
- "3.11"
324+
setup:
325+
python:
326+
- "3.11"
327+
cuda:
328+
- "12.8.1-cudnn"
329+
env:
330+
PYTHON_VERSION: "{{matrix.python}}"
331+
CUDA_VERSION: "{{matrix.cuda}}"
332+
ARCH_SUFFIX: ""
333+
tags:
334+
- python_dependencies
335+
- docker
336+
- oss
337+
depends_on:
338+
- ray-wheel-build
339+
- ray-llmbase
229340

230-
- label: ":tapioca: build: ray-llm-extra py{{matrix}} docker (x86_64)"
341+
- name: ray-llm-extra-image-cuda-build
342+
label: "wanda: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
343+
wanda: ci/docker/ray-llm-extra-image-cuda.wanda.yaml
344+
matrix:
345+
setup:
346+
python:
347+
- "3.11"
348+
cuda:
349+
- "12.8.1-cudnn"
350+
env:
351+
PYTHON_VERSION: "{{matrix.python}}"
352+
CUDA_VERSION: "{{matrix.cuda}}"
353+
ARCH_SUFFIX: ""
231354
tags:
232355
- python_dependencies
233356
- docker
234357
- oss
235-
instance_type: medium
236-
commands:
237-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
238-
--platform cu12.8.1-cudnn --image-type ray-llm-extra --upload
239358
depends_on:
240-
- manylinux-x86_64
241-
- forge
359+
- ray-wheel-build
242360
- ray-llmbaseextra
361+
362+
# Push ray-extra CPU images to Docker Hub (goes to rayproject/ray)
363+
# Gating: only on releases/* OR (master AND nightly)
364+
- label: ":docker: push: ray-extra py{{matrix}} cpu (x86_64)"
365+
key: ray_extra_images_cpu_push
366+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
367+
instance_type: small
368+
commands:
369+
- bazel run //.buildkite:copy_files -- --destination docker_login
370+
- bazel run //ci/ray_ci/automation:push_ray_image --
371+
--python-version {{matrix}}
372+
--platform cpu
373+
--image-type ray-extra
374+
--upload
243375
matrix:
376+
- "3.10"
244377
- "3.11"
378+
- "3.12"
379+
depends_on:
380+
- ray-extra-image-cpu-build
381+
tags:
382+
- python_dependencies
383+
- docker
384+
- skip-on-premerge
385+
386+
# Push ray-extra CUDA images to Docker Hub (goes to rayproject/ray)
387+
# Gating: only on releases/* OR (master AND nightly)
388+
- label: ":docker: push: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
389+
key: ray_extra_images_cuda_push
390+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
391+
instance_type: small
392+
commands:
393+
- bazel run //.buildkite:copy_files -- --destination docker_login
394+
- bazel run //ci/ray_ci/automation:push_ray_image --
395+
--python-version {{matrix.python}}
396+
--platform cu{{matrix.cuda}}
397+
--image-type ray-extra
398+
--upload
399+
matrix:
400+
setup:
401+
python:
402+
- "3.10"
403+
- "3.11"
404+
- "3.12"
405+
cuda:
406+
- "11.7.1-cudnn8"
407+
- "11.8.0-cudnn8"
408+
- "12.1.1-cudnn8"
409+
- "12.3.2-cudnn9"
410+
- "12.4.1-cudnn"
411+
- "12.5.1-cudnn"
412+
- "12.6.3-cudnn"
413+
- "12.8.1-cudnn"
414+
- "12.9.1-cudnn"
415+
depends_on:
416+
- ray-extra-image-cuda-build
417+
tags:
418+
- python_dependencies
419+
- docker
420+
- skip-on-premerge
421+
422+
# Push ray-llm CUDA images to Docker Hub (goes to rayproject/ray-llm)
423+
# Gating: only on releases/* OR (master AND nightly)
424+
- label: ":docker: push: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
425+
key: ray_llm_images_cuda_push
426+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
427+
instance_type: small
428+
commands:
429+
- bazel run //.buildkite:copy_files -- --destination docker_login
430+
- bazel run //ci/ray_ci/automation:push_ray_image --
431+
--python-version {{matrix.python}}
432+
--platform cu{{matrix.cuda}}
433+
--image-type ray-llm
434+
--upload
435+
matrix:
436+
setup:
437+
python:
438+
- "3.11"
439+
cuda:
440+
- "12.8.1-cudnn"
441+
depends_on:
442+
- ray-llm-image-cuda-build
443+
tags:
444+
- python_dependencies
445+
- docker
446+
- skip-on-premerge
447+
448+
# Push ray-llm-extra CUDA images to Docker Hub (goes to rayproject/ray-llm)
449+
# Gating: only on releases/* OR (master AND nightly)
450+
- label: ":docker: push: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
451+
key: ray_llm_extra_images_cuda_push
452+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
453+
instance_type: small
454+
commands:
455+
- bazel run //.buildkite:copy_files -- --destination docker_login
456+
- bazel run //ci/ray_ci/automation:push_ray_image --
457+
--python-version {{matrix.python}}
458+
--platform cu{{matrix.cuda}}
459+
--image-type ray-llm-extra
460+
--upload
461+
matrix:
462+
setup:
463+
python:
464+
- "3.11"
465+
cuda:
466+
- "12.8.1-cudnn"
467+
depends_on:
468+
- ray-llm-extra-image-cuda-build
469+
tags:
470+
- python_dependencies
471+
- docker
472+
- skip-on-premerge
245473

246474
- label: ":tapioca: smoke test build-docker.sh"
247475
tags:
@@ -258,7 +486,10 @@ steps:
258486
depends_on:
259487
- forge
260488

489+
# Generate nightly indexes after images are pushed
490+
# Gating: only on releases/* OR (master AND nightly)
261491
- label: ":tapioca: generate nightly indexes"
492+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
262493
instance_type: small
263494
tags:
264495
- docker
@@ -268,6 +499,7 @@ steps:
268499
- bazel run .buildkite:copy_files -- --destination docker_login
269500
- bazel run //ci/ray_ci/automation:generate_index -- --prefix nightly
270501
depends_on:
271-
- ray_images
502+
- ray_images_cpu_push
503+
- ray_images_cuda_push
272504
- ray_images_aarch64
273505
- forge

0 commit comments

Comments
 (0)