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