@@ -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