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 Build Pipeline

From Leeroopedia
Knowledge Sources
Domains CI, Build, Docker, Release
Last Updated 2026-02-13 16:00 GMT

Overview

This file defines the Buildkite "build" pipeline group that handles wheel uploading, C++ wheel building, release Docker image construction, and artifact publishing for Ray releases on x86_64 architecture.

Description

The .buildkite/build.rayci.yml pipeline orchestrates the full release artifact build process for Ray. It coordinates uploading pre-built Python wheels (for Python 3.10 through 3.14), building C++ core and wheel packages, constructing multiple Docker image variants (CPU, CUDA with various versions, LLM-specific images), and publishing all artifacts to container registries. Each step declares explicit dependencies to ensure correct build ordering, with Wanda-based Docker builds and Bazel-driven automation tooling.

Usage

Developers and release engineers modify this file when adding new Python version support, new CUDA version targets, new Docker image variants (such as the ray-llm images), or when changing the release artifact publishing workflow. It is also modified when updating the build dependency graph or adjusting which steps run on premerge versus postmerge pipelines.

Code Reference

Source Location

  • Repository: Ray
  • File: .buildkite/build.rayci.yml
  • Lines: 1-366

Signature

group: build
steps:
  - label: ":arrow_up: upload: wheel py{{matrix}} (x86_64)"
    key: linux_wheels_upload
    instance_type: small
    commands:
      - bazel run //ci/ray_ci/automation:extract_wanda_wheels --
        --wanda-image-name=ray-wheel-py{{matrix}}
      - ./ci/build/copy_build_artifacts.sh wheel
    matrix:
      - "3.10"
      - "3.11"
      - "3.12"
      - "3.13"
      - "3.14"
    depends_on:
      - ray-wheel-build
      - forge
    tags:
      - release_wheels
      - linux_wheels
      - oss
      - skip-on-premerge

Import

Configuration file, referenced by the Buildkite CI pipeline system. Loaded as part of the RayCI pipeline group mechanism and processed by the Buildkite agent during build execution.

I/O Contract

Inputs

Name Type Required Description
ray-wheel-build dependency yes Pre-built Ray wheel images produced by the wheel build pipeline
forge dependency yes The forge build environment used for Bazel and tooling
ray-core-build dependency yes Core Ray binary components required for C++ wheel
ray-cpp-core-build dependency yes C++ core build artifacts for the C++ wheel
ray-java-build dependency yes Java build artifacts required for C++ wheel
ray-dashboard-build dependency yes Dashboard build artifacts for C++ wheel
raycpubase / raycudabase dependency yes Base Docker images for CPU and CUDA variants
manylinux-x86_64 dependency yes Manylinux build environment for Java jar builds
rayci.env env file yes Environment configuration file for Wanda builds

Outputs

Name Type Description
Python wheels artifact Ray wheels for Python 3.10-3.14 on x86_64
C++ wheel artifact Python-agnostic Ray C++ wheel on x86_64
Java jar artifact Ray Java bindings jar file
ray Docker images Docker image Ray runtime images for CPU and multiple CUDA versions across Python 3.10-3.13
ray-extra Docker images Docker image Extended Ray images with additional dependencies
ray-llm Docker images Docker image Ray LLM-specific images (Python 3.11, CUDA 12.8.1)
ray-llm-extra Docker images Docker image Extended Ray LLM images with additional dependencies
Nightly indexes artifact Generated nightly package indexes for Docker images

Usage Examples

The pipeline is triggered automatically by Buildkite. Key build steps include:

# Wheel upload step (runs on postmerge only due to skip-on-premerge tag)
- label: ":arrow_up: upload: wheel py3.12 (x86_64)"
  commands:
    - bazel run //ci/ray_ci/automation:extract_wanda_wheels --
      --wanda-image-name=ray-wheel-py3.12
    - ./ci/build/copy_build_artifacts.sh wheel

# Docker image build via Wanda
- name: ray-image-cuda-build
  wanda: ci/docker/ray-image-cuda.wanda.yaml
  matrix:
    setup:
      python: ["3.10", "3.11", "3.12", "3.13"]
      cuda: ["11.7.1-cudnn8", "12.8.1-cudnn"]

# Image publishing step
- label: ":crane: publish: ray py3.12 (x86_64)"
  commands:
    - bazel run //ci/ray_ci/automation:push_ray_image --
      --python-version 3.12 --platform cpu --platform cu12.8.1-cudnn
      --image-type ray --architecture x86_64

Related Pages

Page Connections

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