Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .buildkite/_forge.rayci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@ steps:
- name: forge
wanda: ci/docker/forge.wanda.yaml

# Bazel 8+ release binaries need glibc >= 2.25, but Ray builds its Linux
# wheels inside manylinux2014 (CentOS 7, glibc 2.17) so that they keep running
# on glibc 2.17 systems. This step compiles Bazel from source inside
# manylinux2014 and ships it with a JDK 21 that also runs on glibc 2.17
# (ci/docker/bazel-glibc217.Dockerfile). Every image that runs Bazel inside
# manylinux2014 depends on it. Wanda caches it, so it only rebuilds when
# .bazelversion changes.
# TODO: upgrade the wheel build image from manylinux2014 to manylinux_2_28
# (glibc 2.28, which raises the user glibc floor to 2.28). The official Bazel
# binary then runs there, so remove this step, the bazel-glibc217 depends_on
# edges and the bazel-glibc217 COPY blocks in the ray-core, ray-cpp-core,
# ray-java and manylinux-retag Dockerfiles.
- name: bazel-glibc217-x86_64
label: "wanda: bazel for manylinux2014 (x86_64)"
wanda: ci/docker/bazel-glibc217.wanda.yaml
Expand All @@ -13,6 +25,7 @@ steps:

- name: manylinux-x86_64
wanda: ci/docker/manylinux.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-x86_64
env_file: rayci.env
env:
Expand Down
2 changes: 2 additions & 0 deletions .buildkite/_wheel-build.rayci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ steps:
- name: ray-core-build
label: "wanda: core binary parts py{{array.python}} (x86_64)"
wanda: ci/docker/ray-core.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-x86_64
array:
python:
Expand Down Expand Up @@ -33,6 +34,7 @@ steps:
- name: ray-java-build
label: "wanda: java build (x86_64)"
wanda: ci/docker/ray-java.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-x86_64
env_file: rayci.env
env:
Expand Down
1 change: 1 addition & 0 deletions .buildkite/build.rayci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ steps:
- name: ray-cpp-core-build
label: "wanda: cpp core (x86_64)"
wanda: ci/docker/ray-cpp-core.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-x86_64
env_file: rayci.env
env:
Expand Down
7 changes: 7 additions & 0 deletions .buildkite/linux_aarch64.rayci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ steps:
wanda: ci/docker/forge.aarch64.wanda.yaml
instance_type: builder-arm64

# Bazel built for glibc 2.17, for the images that run Bazel inside
# manylinux2014. See the x86_64 step in _forge.rayci.yml for why.
# TODO: remove after the move to manylinux_2_28 (see _forge.rayci.yml).
- name: bazel-glibc217-aarch64
label: "wanda: bazel for manylinux2014 (aarch64)"
wanda: ci/docker/bazel-glibc217.wanda.yaml
Expand All @@ -20,6 +23,7 @@ steps:

- name: manylinux-aarch64
wanda: ci/docker/manylinux.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-aarch64
env_file: rayci.env
env:
Expand All @@ -29,6 +33,7 @@ steps:
- name: ray-java-build-aarch64
label: "wanda: java build (aarch64)"
wanda: ci/docker/ray-java.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-aarch64
tags:
- release_wheels
Expand Down Expand Up @@ -196,6 +201,7 @@ steps:
- name: ray-core-build-aarch64
label: "wanda: core binary parts py{{array.python}} (aarch64)"
wanda: ci/docker/ray-core.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-aarch64
env_file: rayci.env
array:
Expand Down Expand Up @@ -270,6 +276,7 @@ steps:
- name: ray-cpp-core-build-aarch64
label: "wanda: cpp core (aarch64)"
wanda: ci/docker/ray-cpp-core.wanda.yaml
# TODO: drop after the move to manylinux_2_28 (see _forge.rayci.yml).
depends_on: bazel-glibc217-aarch64
env_file: rayci.env
env:
Expand Down
1 change: 1 addition & 0 deletions ci/docker/manylinux-retag.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ FROM rayproject/manylinux2014:${MANYLINUX_VERSION}-jdk-${HOSTTYPE}
# Bazel's own Linux releases need glibc >= 2.25 since Bazel 8, and this image is
# glibc 2.17. Run the copy built for it (ci/docker/bazel-glibc217.Dockerfile)
# instead. The build calls bazelisk, and /usr/local/bin/bazel links to it.
# TODO: remove after the move to manylinux_2_28 (see .buildkite/_forge.rayci.yml).
COPY --from=bazel /bazel /opt/bazel-glibc217/bazel
COPY --from=bazel /jdk21 /opt/bazel-glibc217/jdk21
RUN sudo mv /usr/local/bin/bazelisk /usr/local/bin/bazelisk.real \
Expand Down
1 change: 1 addition & 0 deletions ci/docker/ray-core.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ WORKDIR /home/forge/ray
# Bazel's own Linux releases need glibc >= 2.25 since Bazel 8, and this image is
# glibc 2.17. Run the copy built for it (ci/docker/bazel-glibc217.Dockerfile)
# instead. The build calls bazelisk, and /usr/local/bin/bazel links to it.
# TODO: remove after the move to manylinux_2_28 (see .buildkite/_forge.rayci.yml).
COPY --from=bazel /bazel /opt/bazel-glibc217/bazel
COPY --from=bazel /jdk21 /opt/bazel-glibc217/jdk21
RUN sudo mv /usr/local/bin/bazelisk /usr/local/bin/bazelisk.real \
Expand Down
1 change: 1 addition & 0 deletions ci/docker/ray-cpp-core.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ WORKDIR /home/forge/ray
# Bazel's own Linux releases need glibc >= 2.25 since Bazel 8, and this image is
# glibc 2.17. Run the copy built for it (ci/docker/bazel-glibc217.Dockerfile)
# instead. The build calls bazelisk, and /usr/local/bin/bazel links to it.
# TODO: remove after the move to manylinux_2_28 (see .buildkite/_forge.rayci.yml).
COPY --from=bazel /bazel /opt/bazel-glibc217/bazel
COPY --from=bazel /jdk21 /opt/bazel-glibc217/jdk21
RUN sudo mv /usr/local/bin/bazelisk /usr/local/bin/bazelisk.real \
Expand Down
1 change: 1 addition & 0 deletions ci/docker/ray-java.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ WORKDIR /home/forge/ray
# Bazel's own Linux releases need glibc >= 2.25 since Bazel 8, and this image is
# glibc 2.17. Run the copy built for it (ci/docker/bazel-glibc217.Dockerfile)
# instead. The build calls bazelisk, and /usr/local/bin/bazel links to it.
# TODO: remove after the move to manylinux_2_28 (see .buildkite/_forge.rayci.yml).
COPY --from=bazel /bazel /opt/bazel-glibc217/bazel
COPY --from=bazel /jdk21 /opt/bazel-glibc217/jdk21
RUN sudo mv /usr/local/bin/bazelisk /usr/local/bin/bazelisk.real \
Expand Down