Skip to content

Commit 70df756

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 <andrew@anyscale.com>
1 parent 164e2e4 commit 70df756

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
@@ -181,89 +181,317 @@ steps:
181181
depends_on: manylinux-x86_64
182182
job_env: manylinux-x86_64
183183

184-
- label: ":tapioca: build: ray py{{matrix}} docker (x86_64)"
185-
key: ray_images
184+
- name: ray-image-cpu-build
185+
label: "wanda: ray py{{matrix}} cpu (x86_64)"
186+
wanda: ci/docker/ray-image-cpu.wanda.yaml
187+
matrix:
188+
- "3.10"
189+
- "3.11"
190+
- "3.12"
191+
env:
192+
PYTHON_VERSION: "{{matrix}}"
193+
ARCH_SUFFIX: ""
186194
tags:
187195
- python_dependencies
188196
- docker
189197
- oss
190-
instance_type: medium
191-
commands:
192-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
193-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
194-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
195-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
196-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
197-
--platform cu12.9.1-cudnn
198-
--platform cpu
199-
--image-type ray --upload
200198
depends_on:
201-
- manylinux-x86_64
202-
- forge
203-
- raycudabase
199+
- ray-wheel-build
204200
- raycpubase
201+
202+
# Push ray CPU images to Docker Hub
203+
# Gating: only on releases/* OR (master AND nightly)
204+
- label: ":docker: push: ray py{{matrix}} cpu (x86_64)"
205+
key: ray_images_cpu_push
206+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
207+
instance_type: small
208+
commands:
209+
- bazel run //.buildkite:copy_files -- --destination docker_login
210+
- bazel run //ci/ray_ci/automation:push_ray_image --
211+
--python-version {{matrix}}
212+
--platform cpu
213+
--image-type ray
214+
--upload
205215
matrix:
206216
- "3.10"
207217
- "3.11"
208218
- "3.12"
219+
depends_on:
220+
- ray-image-cpu-build
221+
tags:
222+
- python_dependencies
223+
- docker
224+
- skip-on-premerge
209225

210-
- label: ":tapioca: build: ray-extra py{{matrix}} docker (x86_64)"
211-
key: ray_extra_images
226+
- name: ray-image-cuda-build
227+
label: "wanda: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
228+
wanda: ci/docker/ray-image-cuda.wanda.yaml
229+
matrix:
230+
setup:
231+
python:
232+
- "3.10"
233+
- "3.11"
234+
- "3.12"
235+
cuda:
236+
- "11.7.1-cudnn8"
237+
- "11.8.0-cudnn8"
238+
- "12.1.1-cudnn8"
239+
- "12.3.2-cudnn9"
240+
- "12.4.1-cudnn"
241+
- "12.5.1-cudnn"
242+
- "12.6.3-cudnn"
243+
- "12.8.1-cudnn"
244+
- "12.9.1-cudnn"
245+
env:
246+
PYTHON_VERSION: "{{matrix.python}}"
247+
CUDA_VERSION: "{{matrix.cuda}}"
248+
ARCH_SUFFIX: ""
212249
tags:
213250
- python_dependencies
214251
- docker
215252
- oss
216-
instance_type: medium
253+
depends_on:
254+
- ray-wheel-build
255+
- raycudabase
256+
257+
# Push ray CUDA images to Docker Hub
258+
# Gating: only on releases/* OR (master AND nightly)
259+
- label: ":docker: push: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
260+
key: ray_images_cuda_push
261+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
262+
instance_type: small
217263
commands:
218-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
219-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
220-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
221-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
222-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
223-
--platform cu12.9.1-cudnn
224-
--platform cpu
225-
--image-type ray-extra --upload
264+
- bazel run //.buildkite:copy_files -- --destination docker_login
265+
- bazel run //ci/ray_ci/automation:push_ray_image --
266+
--python-version {{matrix.python}}
267+
--platform cu{{matrix.cuda}}
268+
--image-type ray
269+
--upload
270+
matrix:
271+
setup:
272+
python:
273+
- "3.10"
274+
- "3.11"
275+
- "3.12"
276+
cuda:
277+
- "11.7.1-cudnn8"
278+
- "11.8.0-cudnn8"
279+
- "12.1.1-cudnn8"
280+
- "12.3.2-cudnn9"
281+
- "12.4.1-cudnn"
282+
- "12.5.1-cudnn"
283+
- "12.6.3-cudnn"
284+
- "12.8.1-cudnn"
285+
- "12.9.1-cudnn"
226286
depends_on:
227-
- manylinux-x86_64
228-
- forge
229-
- raycpubaseextra
230-
- raycudabaseextra
287+
- ray-image-cuda-build
288+
tags:
289+
- python_dependencies
290+
- docker
291+
- skip-on-premerge
292+
293+
- name: ray-extra-image-cpu-build
294+
label: "wanda: ray-extra py{{matrix}} cpu (x86_64)"
295+
wanda: ci/docker/ray-extra-image-cpu.wanda.yaml
231296
matrix:
232297
- "3.10"
233298
- "3.11"
234299
- "3.12"
300+
env:
301+
PYTHON_VERSION: "{{matrix}}"
302+
ARCH_SUFFIX: ""
303+
tags:
304+
- python_dependencies
305+
- docker
306+
- oss
307+
depends_on:
308+
- ray-wheel-build
309+
- raycpubaseextra
235310

236-
- label: ":tapioca: build: ray-llm py{{matrix}} docker (x86_64)"
311+
- name: ray-extra-image-cuda-build
312+
label: "wanda: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
313+
wanda: ci/docker/ray-extra-image-cuda.wanda.yaml
314+
matrix:
315+
setup:
316+
python:
317+
- "3.10"
318+
- "3.11"
319+
- "3.12"
320+
cuda:
321+
- "11.7.1-cudnn8"
322+
- "11.8.0-cudnn8"
323+
- "12.1.1-cudnn8"
324+
- "12.3.2-cudnn9"
325+
- "12.4.1-cudnn"
326+
- "12.5.1-cudnn"
327+
- "12.6.3-cudnn"
328+
- "12.8.1-cudnn"
329+
- "12.9.1-cudnn"
330+
env:
331+
PYTHON_VERSION: "{{matrix.python}}"
332+
CUDA_VERSION: "{{matrix.cuda}}"
333+
ARCH_SUFFIX: ""
237334
tags:
238335
- python_dependencies
239336
- docker
240337
- oss
241-
instance_type: medium
242-
commands:
243-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
244-
--platform cu12.8.1-cudnn --image-type ray-llm --upload
245338
depends_on:
246-
- manylinux-x86_64
247-
- forge
248-
- ray-llmbase
339+
- ray-wheel-build
340+
- raycudabaseextra
341+
342+
- name: ray-llm-image-cuda-build
343+
label: "wanda: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
344+
wanda: ci/docker/ray-llm-image-cuda.wanda.yaml
249345
matrix:
250-
- "3.11"
346+
setup:
347+
python:
348+
- "3.11"
349+
cuda:
350+
- "12.8.1-cudnn"
351+
env:
352+
PYTHON_VERSION: "{{matrix.python}}"
353+
CUDA_VERSION: "{{matrix.cuda}}"
354+
ARCH_SUFFIX: ""
355+
tags:
356+
- python_dependencies
357+
- docker
358+
- oss
359+
depends_on:
360+
- ray-wheel-build
361+
- ray-llmbase
251362

252-
- label: ":tapioca: build: ray-llm-extra py{{matrix}} docker (x86_64)"
363+
- name: ray-llm-extra-image-cuda-build
364+
label: "wanda: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
365+
wanda: ci/docker/ray-llm-extra-image-cuda.wanda.yaml
366+
matrix:
367+
setup:
368+
python:
369+
- "3.11"
370+
cuda:
371+
- "12.8.1-cudnn"
372+
env:
373+
PYTHON_VERSION: "{{matrix.python}}"
374+
CUDA_VERSION: "{{matrix.cuda}}"
375+
ARCH_SUFFIX: ""
253376
tags:
254377
- python_dependencies
255378
- docker
256379
- oss
257-
instance_type: medium
258-
commands:
259-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
260-
--platform cu12.8.1-cudnn --image-type ray-llm-extra --upload
261380
depends_on:
262-
- manylinux-x86_64
263-
- forge
381+
- ray-wheel-build
264382
- ray-llmbaseextra
383+
384+
# Push ray-extra CPU images to Docker Hub (goes to rayproject/ray)
385+
# Gating: only on releases/* OR (master AND nightly)
386+
- label: ":docker: push: ray-extra py{{matrix}} cpu (x86_64)"
387+
key: ray_extra_images_cpu_push
388+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
389+
instance_type: small
390+
commands:
391+
- bazel run //.buildkite:copy_files -- --destination docker_login
392+
- bazel run //ci/ray_ci/automation:push_ray_image --
393+
--python-version {{matrix}}
394+
--platform cpu
395+
--image-type ray-extra
396+
--upload
265397
matrix:
398+
- "3.10"
266399
- "3.11"
400+
- "3.12"
401+
depends_on:
402+
- ray-extra-image-cpu-build
403+
tags:
404+
- python_dependencies
405+
- docker
406+
- skip-on-premerge
407+
408+
# Push ray-extra CUDA images to Docker Hub (goes to rayproject/ray)
409+
# Gating: only on releases/* OR (master AND nightly)
410+
- label: ":docker: push: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
411+
key: ray_extra_images_cuda_push
412+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
413+
instance_type: small
414+
commands:
415+
- bazel run //.buildkite:copy_files -- --destination docker_login
416+
- bazel run //ci/ray_ci/automation:push_ray_image --
417+
--python-version {{matrix.python}}
418+
--platform cu{{matrix.cuda}}
419+
--image-type ray-extra
420+
--upload
421+
matrix:
422+
setup:
423+
python:
424+
- "3.10"
425+
- "3.11"
426+
- "3.12"
427+
cuda:
428+
- "11.7.1-cudnn8"
429+
- "11.8.0-cudnn8"
430+
- "12.1.1-cudnn8"
431+
- "12.3.2-cudnn9"
432+
- "12.4.1-cudnn"
433+
- "12.5.1-cudnn"
434+
- "12.6.3-cudnn"
435+
- "12.8.1-cudnn"
436+
- "12.9.1-cudnn"
437+
depends_on:
438+
- ray-extra-image-cuda-build
439+
tags:
440+
- python_dependencies
441+
- docker
442+
- skip-on-premerge
443+
444+
# Push ray-llm CUDA images to Docker Hub (goes to rayproject/ray-llm)
445+
# Gating: only on releases/* OR (master AND nightly)
446+
- label: ":docker: push: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
447+
key: ray_llm_images_cuda_push
448+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
449+
instance_type: small
450+
commands:
451+
- bazel run //.buildkite:copy_files -- --destination docker_login
452+
- bazel run //ci/ray_ci/automation:push_ray_image --
453+
--python-version {{matrix.python}}
454+
--platform cu{{matrix.cuda}}
455+
--image-type ray-llm
456+
--upload
457+
matrix:
458+
setup:
459+
python:
460+
- "3.11"
461+
cuda:
462+
- "12.8.1-cudnn"
463+
depends_on:
464+
- ray-llm-image-cuda-build
465+
tags:
466+
- python_dependencies
467+
- docker
468+
- skip-on-premerge
469+
470+
# Push ray-llm-extra CUDA images to Docker Hub (goes to rayproject/ray-llm)
471+
# Gating: only on releases/* OR (master AND nightly)
472+
- label: ":docker: push: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
473+
key: ray_llm_extra_images_cuda_push
474+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
475+
instance_type: small
476+
commands:
477+
- bazel run //.buildkite:copy_files -- --destination docker_login
478+
- bazel run //ci/ray_ci/automation:push_ray_image --
479+
--python-version {{matrix.python}}
480+
--platform cu{{matrix.cuda}}
481+
--image-type ray-llm-extra
482+
--upload
483+
matrix:
484+
setup:
485+
python:
486+
- "3.11"
487+
cuda:
488+
- "12.8.1-cudnn"
489+
depends_on:
490+
- ray-llm-extra-image-cuda-build
491+
tags:
492+
- python_dependencies
493+
- docker
494+
- skip-on-premerge
267495

268496
- label: ":tapioca: smoke test build-docker.sh"
269497
tags:
@@ -280,7 +508,10 @@ steps:
280508
depends_on:
281509
- forge
282510

511+
# Generate nightly indexes after images are pushed
512+
# Gating: only on releases/* OR (master AND nightly)
283513
- label: ":tapioca: generate nightly indexes"
514+
if: build.branch =~ /^releases\// || (build.branch == "master" && build.env("RAYCI_SCHEDULE") == "nightly")
284515
instance_type: small
285516
tags:
286517
- docker
@@ -290,6 +521,7 @@ steps:
290521
- bazel run .buildkite:copy_files -- --destination docker_login
291522
- bazel run //ci/ray_ci/automation:generate_index -- --prefix nightly
292523
depends_on:
293-
- ray_images
524+
- ray_images_cpu_push
525+
- ray_images_cuda_push
294526
- ray_images_aarch64
295527
- forge

0 commit comments

Comments
 (0)