Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Ray project Ray Buildkite Aarch64 Pipeline

From Leeroopedia
Revision as of 13:47, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/Ray_project_Ray_Buildkite_Aarch64_Pipeline.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Sources
Domains CI, Build, Docker, ARM64
Last Updated 2026-02-13 16:00 GMT

Overview

This file defines the Buildkite "aarch64 tests" pipeline group that builds and tests Ray on Linux ARM64 architecture, including wheel builds, Docker images, and wheel validation tests.

Description

The .buildkite/linux_aarch64.rayci.yml pipeline mirrors much of the x86_64 build pipeline but targets the ARM64 (aarch64) architecture. It uses builder-arm64 instance types to build forge, manylinux, Java, core, wheel, and Docker images for aarch64, then runs core and serve wheel tests on ARM64 instances. The pipeline is gated by a manual block step on premerge and microcheck pipelines to avoid unnecessary resource usage. A sort_key: "~aarch64" places it late in the pipeline ordering. The pipeline builds Docker images for CPU and CUDA variants across Python 3.10-3.14 (wheels) and 3.10-3.13 (Docker images), with CUDA versions ranging from 11.7.1 to 12.9.1.

Usage

Developers modify this file when adding new Python or CUDA version support for ARM64, updating ARM64-specific build configurations, changing the aarch64 test suite, or adjusting the dependency chain for ARM64 Docker image builds. It is important for ensuring Ray works on AWS Graviton and similar ARM-based cloud infrastructure.

Code Reference

Source Location

  • Repository: Ray
  • File: .buildkite/linux_aarch64.rayci.yml
  • Lines: 1-452

Signature

group: aarch64 tests
sort_key: "~aarch64"
steps:
  # block on premerge and microcheck
  - block: "Run Linux aarch64 tests"
    if: build.env("BUILDKITE_PIPELINE_ID") == "0189942e-..."

  - name: forge-aarch64
    wanda: ci/docker/forge.aarch64.wanda.yaml
    instance_type: builder-arm64

  - name: manylinux-aarch64
    wanda: ci/docker/manylinux.wanda.yaml
    env_file: rayci.env
    env:
      HOSTTYPE: "aarch64"
    instance_type: builder-arm64

  - name: ray-core-build-aarch64
    label: "wanda: core binary parts py{{matrix}} (aarch64)"
    wanda: ci/docker/ray-core.wanda.yaml
    env_file: rayci.env
    matrix: ["3.10", "3.11", "3.12", "3.13", "3.14"]

Import

Configuration file, referenced by the Buildkite CI pipeline system. Loaded as part of the RayCI pipeline group mechanism. Unlike other pipeline groups, this one has no top-level depends_on and is self-contained with its own forge and manylinux builds.

I/O Contract

Inputs

Name Type Required Description
rayci.env env file yes Environment configuration file for Wanda builds
forge-aarch64 dependency yes ARM64 forge build environment (self-produced)
manylinux-aarch64 dependency conditional Required for wheel upload and test steps
oss-ci-base_build-aarch64 dependency conditional ARM64 base CI build image for wheel tests

Outputs

Name Type Description
forge-aarch64 Docker image ARM64 forge build environment
manylinux-aarch64 Docker image ARM64 manylinux build environment
Python wheels (aarch64) artifact Ray wheels for Python 3.10-3.14 on aarch64
C++ wheel (aarch64) artifact Ray C++ wheel on aarch64
ray Docker images (aarch64) Docker image Ray runtime images for CPU and CUDA on aarch64
ray-extra Docker images (aarch64) Docker image Extended Ray images on aarch64
Core wheel test results CI artifacts Results from core and serve wheel tests on ARM64

Usage Examples

The pipeline builds and publishes ARM64 artifacts:

# ARM64 wheel build step
- name: ray-wheel-build-aarch64
  label: "wanda: wheel py{{matrix}} (aarch64)"
  wanda: ci/docker/ray-wheel.wanda.yaml
  matrix: ["3.10", "3.11", "3.12", "3.13", "3.14"]
  env:
    ARCH_SUFFIX: "-aarch64"
    HOSTTYPE: "aarch64"
  tags: [release_wheels, linux_wheels]
  instance_type: builder-arm64
  depends_on:
    - ray-core-build-aarch64
    - ray-java-build-aarch64
    - ray-dashboard-build-aarch64

# ARM64 wheel test on ARM64 instances
- label: ":ray: core: wheel-aarch64 tests"
  tags: linux_wheels
  instance_type: medium-arm64
  commands:
    - bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... core
      --build-type wheel-aarch64
      --only-tags post_wheel_build
      --python-version 3.10
  job_env: forge-aarch64

# ARM64 image publishing (uses x86_64 instance for crane tool)
- label: ":crane: publish: ray py{{matrix}} (aarch64)"
  instance_type: small  # x86_64 since crane is x86_64 only
  commands:
    - bazel run //ci/ray_ci/automation:push_ray_image --
      --architecture aarch64

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment