Skip to content

Conversation

@andrew-anyscale
Copy link
Contributor

@andrew-anyscale andrew-anyscale commented Jan 7, 2026

This adds wanda-based builds for anyscale images used in release tests.

Changes:

  • Add ray-anyscale-cpu/cuda.wanda.yaml for ray anyscale images
  • Add ray-llm-anyscale-cuda.wanda.yaml for LLM images
  • Add ray-ml-anyscale-cuda.wanda.yaml for ML images
  • Add push_anyscale_image.py for pushing to ECR/GCP/Azure via crane
  • Update release/build.rayci.yml with build and push steps

Topic: anyscale-image
Relative: wanda-image-upload
Signed-off-by: andrew andrew@anyscale.com

@andrew-anyscale
Copy link
Contributor Author

andrew-anyscale commented Jan 7, 2026

Reviews in this chain:
#60455 [ci] port Buildkite Ray Images to Wanda
 ├#59937 [ci] Add wanda anyscale image builds for release tests
 └#60539 Consolidate RAY_VERSION to use rayci.env as single source of truth

@andrew-anyscale
Copy link
Contributor Author

andrew-anyscale commented Jan 7, 2026

# head base diff date summary
0 f963b425 f104bf59 diff Jan 7 7:57 AM 8 files changed, 553 insertions(+), 24 deletions(-)
1 07109714 288cadb6 diff Jan 7 7:58 AM 0 files changed
2 4cdb2dd9 46cc8625 diff Jan 7 8:38 AM 2 files changed, 238 insertions(+), 5 deletions(-)
3 f65669a5 70df7561 rebase Jan 7 11:29 AM 0 files changed
4 11418977 ae32d45a rebase Jan 7 12:21 PM 0 files changed
5 af3b600e 04cfd26a rebase Jan 7 17:29 PM 0 files changed
6 6bbeb9e4 55d1473f rebase Jan 7 17:31 PM 0 files changed
7 1f049e81 84d74797 diff Jan 8 8:27 AM 2 files changed, 12 insertions(+), 12 deletions(-)
8 d43ccd7f c275fe24 rebase Jan 8 8:32 AM 0 files changed
9 8980d9ce 7c78fa2d rebase Jan 8 12:01 PM 0 files changed
10 4a143b7a 29cf5abd rebase Jan 8 12:51 PM 0 files changed
11 9243672a d566c8a8 rebase Jan 8 13:16 PM 0 files changed
12 8c684c8e 91900297 rebase Jan 8 13:33 PM 0 files changed
13 826bac0f 73822f53 rebase Jan 8 14:30 PM 0 files changed
14 ebdca80e 94805e95 rebase Jan 9 8:45 AM 0 files changed
15 35249bf7 fc79d67d rebase Jan 9 10:01 AM 0 files changed
16 0e1bd8b1 db94f935 rebase Jan 9 10:59 AM 0 files changed
17 5de31a90 05c06707 rebase Jan 9 12:36 PM 0 files changed
18 a96c770e a6718508 rebase Jan 9 13:32 PM 0 files changed
19 47087a0b 51fe33a5 rebase Jan 13 8:55 AM 0 files changed
20 5b7b8097 ed74c8c7 rebase Jan 13 10:55 AM 0 files changed
21 827515b8 6242ab25 rebase Jan 13 15:50 PM 0 files changed
22 c290dfca a941fd54 rebase Jan 13 15:50 PM 0 files changed
23 da45cd89 9db9513a rebase Jan 13 17:03 PM 0 files changed
24 79224a60 6d4a0beb rebase Jan 13 17:09 PM 0 files changed
25 3123fe23 dd5133b8 rebase Jan 13 17:09 PM 0 files changed
26 a57ba933 ae00964a rebase Jan 13 17:12 PM 0 files changed
27 abd456d2 021b2e13 rebase Jan 13 17:14 PM 0 files changed
28 2dc9e7bb 52b7b213 rebase Jan 13 17:33 PM 0 files changed
29 5e859eea 8cfa977c rebase Jan 13 21:52 PM 0 files changed
30 dc8bd484 924d46f1 rebase Jan 15 13:10 PM 0 files changed
31 fc711fb0 275827a2 rebase Jan 15 13:13 PM 0 files changed
32 acdfe07a 04d68065 rebase Jan 15 13:14 PM 0 files changed
33 50ffff8a 6e985e93 rebase Jan 15 13:40 PM 0 files changed
34 b07e1394 17d793f4 rebase Jan 15 13:47 PM 0 files changed
35 77436f88 716cc651 rebase Jan 15 16:04 PM 0 files changed
36 71b04f1e 976be9fb rebase Jan 15 16:48 PM 0 files changed
37 ebae2c55 f4e1306c diff Jan 15 17:41 PM 5 files changed, 12 insertions(+), 8 deletions(-)
38 96eb30f9 73da8387 rebase Jan 15 18:02 PM 0 files changed
39 21fb1ca1 c547d3f5 rebase Jan 16 9:22 AM 0 files changed
40 ebe89619 1f64272b rebase Jan 16 13:28 PM 0 files changed
41 b300d537 a6bdfece rebase Jan 16 14:05 PM 0 files changed
42 cdc64549 6a668ed7 diff Jan 20 10:30 AM 4 files changed, 12 insertions(+), 11 deletions(-)
43 76c20e1b 54ca98e5 rebase Jan 20 11:57 AM 0 files changed
44 14ef5914 54ca98e5 diff Jan 21 9:31 AM 1 file changed, 1 insertion(+)
45 c52a914b 7395a7db rebase Jan 22 11:14 AM 0 files changed
46 abfa8ae4 3a35fdb6 diff Jan 23 8:54 AM 0 files changed
47 01e11758 1d0a962d rebase Jan 26 9:02 AM 0 files changed
48 dc05f898 1960a8e6 rebase Jan 27 9:45 AM 0 files changed
49 a26a857e 6cfc4e79 rebase Jan 27 9:48 AM 0 files changed
50 0078ae15 d1a8111b rebase Jan 27 9:50 AM 0 files changed
51 a32f66a4 d1a8111b diff Jan 27 10:30 AM 1 file changed, 4 insertions(+), 4 deletions(-)
52 6dd8afe4 d1a8111b diff Jan 27 10:34 AM 1 file changed, 4 insertions(+), 4 deletions(-)
53 0f670ad3 a4fe1e01 rebase Jan 27 13:56 PM 0 files changed
54 6db377cc 8ed4a6d1 diff Jan 29 16:22 PM 0 files changed
55 5680742f 2d70aa81 rebase Jan 29 16:45 PM 0 files changed
56 d13645ee 869f34fb rebase Jan 29 16:47 PM 0 files changed
57 ec462b6f 536ab35d rebase Jan 29 17:00 PM 0 files changed
58 01cda557 2abbbc5e rebase Jan 29 17:51 PM 0 files changed
59 31e56883 45cd1ae4 rebase Jan 29 18:33 PM 0 files changed
60 31bfca41 6ed02db2 rebase Jan 29 21:00 PM 0 files changed
61 c3c66a7e e4774330 rebase Jan 29 21:03 PM 0 files changed
62 f29c01a9 ad559443 rebase Jan 29 21:20 PM 0 files changed
63 bb496100 c663c716 rebase Jan 30 8:58 AM 0 files changed
64 4925f4dc 5af6a2b9 rebase Jan 30 9:07 AM 0 files changed
65 ecb1a4dc 907e1ec1 rebase Jan 30 10:19 AM 0 files changed
66 6cbf9297 f2086dc7 rebase Jan 30 10:41 AM 0 files changed
67 4d3a7202 b66d7595 rebase Jan 30 10:46 AM 0 files changed
68 38349f2b 2fb5892f rebase Jan 30 10:58 AM 0 files changed
69 b0970de2 efba4b0f rebase Jan 30 10:59 AM 0 files changed
70 f9436df2 cba45eb4 rebase Jan 30 12:22 PM 0 files changed
71 9f283393 ba9c8603 diff Jan 30 13:28 PM 1 file changed, 14 insertions(+), 16 deletions(-)
72 8eb71d4c fc730b06 rebase Jan 30 13:31 PM 0 files changed
73 dcd26201 1609eac2 rebase Jan 30 13:58 PM 0 files changed
74 dcd26201 1609eac2 diff Jan 30 13:59 PM 0 files changed
75 e4ba419d 1609eac2 diff Jan 30 14:01 PM 1 file changed, 7 insertions(+), 25 deletions(-)
76 bfbedb45 1609eac2 diff Jan 30 14:04 PM 2 files changed, 12 insertions(+), 5 deletions(-)
77 3fc8d89f 7fe9ae2b rebase Jan 30 14:21 PM 0 files changed
78 2becfe0c 0ec84ea3 diff Jan 30 15:13 PM 2 files changed, 21 insertions(+), 36 deletions(-)
79 bda71c76 0ec84ea3 diff Jan 30 17:25 PM 2 files changed, 10 insertions(+), 6 deletions(-)
80 436f981d ea2ca724 diff Jan 30 17:26 PM 0 files changed

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the Anyscale image build process to use Wanda for building and a new Python script for pushing images to multiple registries. The changes include new Wanda configuration files, the push_anyscale_image.py script, and updates to the Buildkite pipeline. My review identifies a few critical issues that will break the build, including a missing file in a Bazel target and an incomplete matrix configuration in the pipeline. I've also provided several suggestions to improve maintainability by reducing code duplication and making parts of the new script less brittle.


# GPU_PLATFORM is the default GPU platform that gets aliased as "gpu"
# This must match the definition in ci/ray_ci/docker_container.py
GPU_PLATFORM = "cu12.1.1-cudnn8"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The GPU_PLATFORM is hardcoded here. The comment mentions it must match a definition in another file, which makes this brittle. If the default GPU platform changes, this script will require a manual update, which can be easily missed. Consider sourcing this value from a shared configuration file or passing it as a command-line argument to make the script more robust and maintainable.

Comment on lines 69 to 76
def _format_platform_tag(platform: str) -> str:
"""Format platform as -cpu or shortened CUDA version."""
if platform == "cpu":
return "-cpu"
# cu12.3.2-cudnn9 -> -cu123
versions = platform.split(".")
return f"-{versions[0]}{versions[1]}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The logic for parsing the CUDA version string using platform.split('.') is fragile. It assumes a specific format with dots as separators and might fail with an IndexError if the platform string format changes (e.g., cu12-cudnn8). Using a regular expression would be more robust for extracting the version parts. For example: re.match(r"cu(\\d+)\\.(\\d+)", platform).

@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 0710971 to 4cdb2dd Compare January 7, 2026 16:38
@andrew-anyscale andrew-anyscale changed the base branch from andrew/revup/master/ray-wheel to andrew/revup/master/ray-image January 7, 2026 16:38
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from 46cc862 to 70df756 Compare January 7, 2026 19:29
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 4cdb2dd to f65669a Compare January 7, 2026 19:29
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from 70df756 to ae32d45 Compare January 7, 2026 20:21
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from f65669a to 1141897 Compare January 7, 2026 20:21
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from ae32d45 to 04cfd26 Compare January 8, 2026 01:29
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch 2 times, most recently from af3b600 to 6bbeb9e Compare January 8, 2026 01:31
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from 04cfd26 to 55d1473 Compare January 8, 2026 01:31
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 6bbeb9e to 1f049e8 Compare January 8, 2026 16:27
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from 55d1473 to 84d7479 Compare January 8, 2026 16:27
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from 84d7479 to c275fe2 Compare January 8, 2026 16:32
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch 2 times, most recently from d43ccd7 to 8980d9c Compare January 8, 2026 20:01
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch 2 times, most recently from 7c78fa2 to 29cf5ab Compare January 8, 2026 20:52
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 8980d9c to 4a143b7 Compare January 8, 2026 20:52
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from 29cf5ab to d566c8a Compare January 8, 2026 21:16
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 4a143b7 to 9243672 Compare January 8, 2026 21:16
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/ray-image branch from d566c8a to 9190029 Compare January 8, 2026 21:33
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from b0970de to f9436df Compare January 30, 2026 20:22
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from efba4b0 to cba45eb Compare January 30, 2026 20:22
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from f9436df to 9f28339 Compare January 30, 2026 21:28
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from cba45eb to ba9c860 Compare January 30, 2026 21:28
@andrew-anyscale andrew-anyscale marked this pull request as ready for review January 30, 2026 21:28
@andrew-anyscale andrew-anyscale requested a review from a team as a code owner January 30, 2026 21:29
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from ba9c860 to fc730b0 Compare January 30, 2026 21:31
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 9f28339 to 8eb71d4 Compare January 30, 2026 21:31
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 8eb71d4 to 99d9b0b Compare January 30, 2026 21:58
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from fc730b0 to 9373b7b Compare January 30, 2026 21:58
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 99d9b0b to dcd2620 Compare January 30, 2026 21:59
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from 9373b7b to 1609eac Compare January 30, 2026 21:59
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch 2 times, most recently from e4ba419 to bfbedb4 Compare January 30, 2026 22:04
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from 1609eac to 7fe9ae2 Compare January 30, 2026 22:21
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from bfbedb4 to 3fc8d89 Compare January 30, 2026 22:22
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 3fc8d89 to 2becfe0 Compare January 30, 2026 23:13
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from 7fe9ae2 to 0ec84ea Compare January 30, 2026 23:13
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from 2becfe0 to c61e365 Compare January 31, 2026 01:26
This adds wanda-based builds for anyscale images used in release tests.

Changes:
- Add ray-anyscale-cpu/cuda.wanda.yaml for ray anyscale images
- Add ray-llm-anyscale-cuda.wanda.yaml for LLM images
- Add ray-ml-anyscale-cuda.wanda.yaml for ML images
- Add push_anyscale_image.py for pushing to ECR/GCP/Azure via crane
- Update release/build.rayci.yml with build and push steps

Topic: anyscale-image
Relative: wanda-image-upload
Signed-off-by: andrew <andrew@anyscale.com>
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/wanda-image-upload branch from 0ec84ea to ea2ca72 Compare January 31, 2026 01:26
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/master/anyscale-image branch from c61e365 to 436f981 Compare January 31, 2026 01:26
@ray-gardener ray-gardener bot added core Issues that should be addressed in Ray Core devprod release-test release test labels Jan 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci core Issues that should be addressed in Ray Core devprod release-test release test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants