Skip to content

Commit 17d793f

Browse files
feat(ci): wanda ray image builds, uploads to Dockerhub
Adds Dockerfile and Wanda files for Ray images, pulling artifacts from previous steps. Buildkite steps also updated to use these, including both build and upload steps. Topic: ray-image Signed-off-by: andrew <andrew@anyscale.com>
1 parent 545eefc commit 17d793f

11 files changed

+1027
-47
lines changed

.buildkite/build.rayci.yml

Lines changed: 269 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ steps:
107107
- ray-java-build
108108
- ray-dashboard-build
109109

110-
# Upload cpp wheel to S3
111110
- label: ":s3: upload: cpp wheel (x86_64)"
112111
key: linux_cpp_wheels_upload
113112
instance_type: small
@@ -136,89 +135,311 @@ steps:
136135
depends_on: manylinux-x86_64
137136
job_env: manylinux-x86_64
138137

139-
- label: ":tapioca: build: ray py{{matrix}} docker (x86_64)"
140-
key: ray_images
138+
- name: ray-image-cpu-build
139+
label: "wanda: ray py{{matrix}} cpu (x86_64)"
140+
wanda: ci/docker/ray-image-cpu.wanda.yaml
141+
matrix:
142+
- "3.10"
143+
- "3.11"
144+
- "3.12"
145+
env:
146+
PYTHON_VERSION: "{{matrix}}"
147+
ARCH_SUFFIX: ""
141148
tags:
142149
- python_dependencies
143150
- docker
144151
- oss
145-
instance_type: medium
146-
commands:
147-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
148-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
149-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
150-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
151-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
152-
--platform cu12.9.1-cudnn
153-
--platform cpu
154-
--image-type ray --upload
155152
depends_on:
156-
- manylinux-x86_64
157-
- forge
158-
- raycudabase
153+
- ray-wheel-build
159154
- raycpubase
155+
156+
- label: ":docker: push: ray py{{matrix}} cpu (x86_64)"
157+
key: ray_images_cpu_push
158+
instance_type: small
159+
commands:
160+
- bazel run //.buildkite:copy_files -- --destination docker_login
161+
- bazel run //ci/ray_ci/automation:push_ray_image --
162+
--python-version {{matrix}}
163+
--platform cpu
164+
--image-type ray
165+
--architecture x86_64
166+
--upload
160167
matrix:
161168
- "3.10"
162169
- "3.11"
163170
- "3.12"
171+
depends_on:
172+
- ray-image-cpu-build
173+
tags:
174+
- python_dependencies
175+
- docker
176+
- skip-on-premerge
177+
- oss
164178

165-
- label: ":tapioca: build: ray-extra py{{matrix}} docker (x86_64)"
166-
key: ray_extra_images
179+
- name: ray-image-cuda-build
180+
label: "wanda: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
181+
wanda: ci/docker/ray-image-cuda.wanda.yaml
182+
matrix:
183+
setup:
184+
python:
185+
- "3.10"
186+
- "3.11"
187+
- "3.12"
188+
cuda:
189+
- "11.7.1-cudnn8"
190+
- "11.8.0-cudnn8"
191+
- "12.1.1-cudnn8"
192+
- "12.3.2-cudnn9"
193+
- "12.4.1-cudnn"
194+
- "12.5.1-cudnn"
195+
- "12.6.3-cudnn"
196+
- "12.8.1-cudnn"
197+
- "12.9.1-cudnn"
198+
env:
199+
PYTHON_VERSION: "{{matrix.python}}"
200+
CUDA_VERSION: "{{matrix.cuda}}"
201+
ARCH_SUFFIX: ""
167202
tags:
168203
- python_dependencies
169204
- docker
170205
- oss
171-
instance_type: medium
206+
depends_on:
207+
- ray-wheel-build
208+
- raycudabase
209+
210+
- label: ":docker: push: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
211+
key: ray_images_cuda_push
212+
instance_type: small
172213
commands:
173-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
174-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
175-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
176-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
177-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
178-
--platform cu12.9.1-cudnn
179-
--platform cpu
180-
--image-type ray-extra --upload
214+
- bazel run //.buildkite:copy_files -- --destination docker_login
215+
- bazel run //ci/ray_ci/automation:push_ray_image --
216+
--python-version {{matrix.python}}
217+
--platform cu{{matrix.cuda}}
218+
--image-type ray
219+
--architecture x86_64
220+
--upload
221+
matrix:
222+
setup:
223+
python:
224+
- "3.10"
225+
- "3.11"
226+
- "3.12"
227+
cuda:
228+
- "11.7.1-cudnn8"
229+
- "11.8.0-cudnn8"
230+
- "12.1.1-cudnn8"
231+
- "12.3.2-cudnn9"
232+
- "12.4.1-cudnn"
233+
- "12.5.1-cudnn"
234+
- "12.6.3-cudnn"
235+
- "12.8.1-cudnn"
236+
- "12.9.1-cudnn"
181237
depends_on:
182-
- manylinux-x86_64
183-
- forge
184-
- raycpubaseextra
185-
- raycudabaseextra
238+
- ray-image-cuda-build
239+
tags:
240+
- python_dependencies
241+
- docker
242+
- skip-on-premerge
243+
- oss
244+
245+
- name: ray-extra-image-cpu-build
246+
label: "wanda: ray-extra py{{matrix}} cpu (x86_64)"
247+
wanda: ci/docker/ray-extra-image-cpu.wanda.yaml
186248
matrix:
187249
- "3.10"
188250
- "3.11"
189251
- "3.12"
252+
env:
253+
PYTHON_VERSION: "{{matrix}}"
254+
ARCH_SUFFIX: ""
255+
tags:
256+
- python_dependencies
257+
- docker
258+
- oss
259+
depends_on:
260+
- ray-wheel-build
261+
- raycpubaseextra
190262

191-
- label: ":tapioca: build: ray-llm py{{matrix}} docker (x86_64)"
263+
- name: ray-extra-image-cuda-build
264+
label: "wanda: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
265+
wanda: ci/docker/ray-extra-image-cuda.wanda.yaml
266+
matrix:
267+
setup:
268+
python:
269+
- "3.10"
270+
- "3.11"
271+
- "3.12"
272+
cuda:
273+
- "11.7.1-cudnn8"
274+
- "11.8.0-cudnn8"
275+
- "12.1.1-cudnn8"
276+
- "12.3.2-cudnn9"
277+
- "12.4.1-cudnn"
278+
- "12.5.1-cudnn"
279+
- "12.6.3-cudnn"
280+
- "12.8.1-cudnn"
281+
- "12.9.1-cudnn"
282+
env:
283+
PYTHON_VERSION: "{{matrix.python}}"
284+
CUDA_VERSION: "{{matrix.cuda}}"
285+
ARCH_SUFFIX: ""
192286
tags:
193287
- python_dependencies
194288
- docker
195289
- oss
196-
instance_type: medium
197-
commands:
198-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
199-
--platform cu12.8.1-cudnn --image-type ray-llm --upload
200290
depends_on:
201-
- manylinux-x86_64
202-
- forge
291+
- ray-wheel-build
292+
- raycudabaseextra
293+
294+
- name: ray-llm-image-cuda-build
295+
label: "wanda: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
296+
wanda: ci/docker/ray-llm-image-cuda.wanda.yaml
297+
matrix:
298+
setup:
299+
python:
300+
- "3.11"
301+
cuda:
302+
- "12.8.1-cudnn"
303+
env:
304+
PYTHON_VERSION: "{{matrix.python}}"
305+
CUDA_VERSION: "{{matrix.cuda}}"
306+
ARCH_SUFFIX: ""
307+
tags:
308+
- python_dependencies
309+
- docker
310+
- oss
311+
depends_on:
312+
- ray-wheel-build
203313
- ray-llmbase
314+
315+
- name: ray-llm-extra-image-cuda-build
316+
label: "wanda: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
317+
wanda: ci/docker/ray-llm-extra-image-cuda.wanda.yaml
318+
matrix:
319+
setup:
320+
python:
321+
- "3.11"
322+
cuda:
323+
- "12.8.1-cudnn"
324+
env:
325+
PYTHON_VERSION: "{{matrix.python}}"
326+
CUDA_VERSION: "{{matrix.cuda}}"
327+
ARCH_SUFFIX: ""
328+
tags:
329+
- python_dependencies
330+
- docker
331+
- oss
332+
depends_on:
333+
- ray-wheel-build
334+
- ray-llmbaseextra
335+
336+
- label: ":docker: push: ray-extra py{{matrix}} cpu (x86_64)"
337+
key: ray_extra_images_cpu_push
338+
instance_type: small
339+
commands:
340+
- bazel run //.buildkite:copy_files -- --destination docker_login
341+
- bazel run //ci/ray_ci/automation:push_ray_image --
342+
--python-version {{matrix}}
343+
--platform cpu
344+
--image-type ray-extra
345+
--architecture x86_64
346+
--upload
204347
matrix:
348+
- "3.10"
205349
- "3.11"
350+
- "3.12"
351+
depends_on:
352+
- ray-extra-image-cpu-build
353+
tags:
354+
- python_dependencies
355+
- docker
356+
- skip-on-premerge
357+
- oss
206358

207-
- label: ":tapioca: build: ray-llm-extra py{{matrix}} docker (x86_64)"
359+
- label: ":docker: push: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
360+
key: ray_extra_images_cuda_push
361+
instance_type: small
362+
commands:
363+
- bazel run //.buildkite:copy_files -- --destination docker_login
364+
- bazel run //ci/ray_ci/automation:push_ray_image --
365+
--python-version {{matrix.python}}
366+
--platform cu{{matrix.cuda}}
367+
--image-type ray-extra
368+
--architecture x86_64
369+
--upload
370+
matrix:
371+
setup:
372+
python:
373+
- "3.10"
374+
- "3.11"
375+
- "3.12"
376+
cuda:
377+
- "11.7.1-cudnn8"
378+
- "11.8.0-cudnn8"
379+
- "12.1.1-cudnn8"
380+
- "12.3.2-cudnn9"
381+
- "12.4.1-cudnn"
382+
- "12.5.1-cudnn"
383+
- "12.6.3-cudnn"
384+
- "12.8.1-cudnn"
385+
- "12.9.1-cudnn"
386+
depends_on:
387+
- ray-extra-image-cuda-build
208388
tags:
209389
- python_dependencies
210390
- docker
391+
- skip-on-premerge
211392
- oss
212-
instance_type: medium
393+
394+
- label: ":docker: push: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
395+
key: ray_llm_images_cuda_push
396+
instance_type: small
213397
commands:
214-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
215-
--platform cu12.8.1-cudnn --image-type ray-llm-extra --upload
398+
- bazel run //.buildkite:copy_files -- --destination docker_login
399+
- bazel run //ci/ray_ci/automation:push_ray_image --
400+
--python-version {{matrix.python}}
401+
--platform cu{{matrix.cuda}}
402+
--image-type ray-llm
403+
--architecture x86_64
404+
--upload
405+
matrix:
406+
setup:
407+
python:
408+
- "3.11"
409+
cuda:
410+
- "12.8.1-cudnn"
216411
depends_on:
217-
- manylinux-x86_64
218-
- forge
219-
- ray-llmbaseextra
412+
- ray-llm-image-cuda-build
413+
tags:
414+
- python_dependencies
415+
- docker
416+
- skip-on-premerge
417+
- oss
418+
419+
- label: ":docker: push: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
420+
key: ray_llm_extra_images_cuda_push
421+
instance_type: small
422+
commands:
423+
- bazel run //.buildkite:copy_files -- --destination docker_login
424+
- bazel run //ci/ray_ci/automation:push_ray_image --
425+
--python-version {{matrix.python}}
426+
--platform cu{{matrix.cuda}}
427+
--image-type ray-llm-extra
428+
--architecture x86_64
429+
--upload
220430
matrix:
221-
- "3.11"
431+
setup:
432+
python:
433+
- "3.11"
434+
cuda:
435+
- "12.8.1-cudnn"
436+
depends_on:
437+
- ray-llm-extra-image-cuda-build
438+
tags:
439+
- python_dependencies
440+
- docker
441+
- skip-on-premerge
442+
- oss
222443

223444
- label: ":tapioca: smoke test build-docker.sh"
224445
tags:
@@ -245,6 +466,7 @@ steps:
245466
- bazel run .buildkite:copy_files -- --destination docker_login
246467
- bazel run //ci/ray_ci/automation:generate_index -- --prefix nightly
247468
depends_on:
248-
- ray_images
469+
- ray_images_cpu_push
470+
- ray_images_cuda_push
249471
- ray_images_aarch64
250472
- forge
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: "ray-extra-py$PYTHON_VERSION-cpu$ARCH_SUFFIX"
2+
disable_caching: true
3+
froms:
4+
- "cr.ray.io/rayproject/ray-py$PYTHON_VERSION-cpu-base-extra$ARCH_SUFFIX" # CPU base-extra image
5+
- "cr.ray.io/rayproject/ray-wheel-py$PYTHON_VERSION$ARCH_SUFFIX" # Ray wheel
6+
dockerfile: ci/docker/ray-image.Dockerfile
7+
srcs:
8+
- python/requirements_compiled.txt
9+
build_args:
10+
- PYTHON_VERSION
11+
- ARCH_SUFFIX
12+
- BASE_IMAGE=cr.ray.io/rayproject/ray-py$PYTHON_VERSION-cpu-base-extra$ARCH_SUFFIX
13+
- RAY_WHEEL_IMAGE=cr.ray.io/rayproject/ray-wheel-py$PYTHON_VERSION$ARCH_SUFFIX

0 commit comments

Comments
 (0)