93 lines
2.8 KiB
Bash
Executable File
93 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Cause the script to exit if a single command fails.
|
|
set -e
|
|
|
|
# Show explicitly which commands are currently running.
|
|
set -x
|
|
|
|
DOWNLOAD_DIR=python_downloads
|
|
|
|
NODE_VERSION="14"
|
|
|
|
PY_MMS=("3.10" "3.11" "3.12" "3.13" "3.14")
|
|
|
|
if [[ -n "${SKIP_DEP_RES}" ]]; then
|
|
./ci/env/install-bazel.sh
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
|
|
|
if [ "$(uname -m)" = "arm64" ]; then
|
|
curl -o- https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh | bash
|
|
else
|
|
curl -sSL -o- https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh | bash
|
|
fi
|
|
|
|
conda init bash
|
|
source ~/.bash_profile
|
|
|
|
# Use the latest version of Node.js in order to build the dashboard.
|
|
source "$HOME"/.nvm/nvm.sh
|
|
nvm install $NODE_VERSION
|
|
nvm use $NODE_VERSION
|
|
fi
|
|
|
|
# Build the dashboard so its static assets can be included in the wheel.
|
|
pushd python/ray/dashboard/client
|
|
source "$HOME"/.nvm/nvm.sh
|
|
npm ci
|
|
npm run build
|
|
popd
|
|
|
|
mkdir -p .whl
|
|
|
|
for ((i=0; i<${#PY_MMS[@]}; ++i)); do
|
|
PY_MM=${PY_MMS[i]}
|
|
CONDA_ENV_NAME="p$PY_MM"
|
|
|
|
# The -f flag is passed twice to also run git clean in the arrow subdirectory.
|
|
# The -d flag removes directories. The -x flag ignores the .gitignore file,
|
|
# and the -e flag ensures that we don't remove the .whl directory.
|
|
git clean -f -f -x -d -e .whl -e $DOWNLOAD_DIR -e python/ray/dashboard/client -e dashboard/client
|
|
|
|
# Install python using conda. This should be easier to produce consistent results in buildkite and locally.
|
|
[ ! -f "$HOME/.bash_profile" ] && conda init bash
|
|
source ~/.bash_profile
|
|
conda create -y -n "$CONDA_ENV_NAME"
|
|
conda activate "$CONDA_ENV_NAME"
|
|
conda remove -y python || true
|
|
conda install -y python="$PY_MM" pip=25.2
|
|
|
|
# NOTE: We expect conda to set the PATH properly.
|
|
PIP_CMD=pip
|
|
|
|
if [ -z "${TRAVIS_COMMIT}" ]; then
|
|
TRAVIS_COMMIT=${BUILDKITE_COMMIT}
|
|
fi
|
|
|
|
pushd python
|
|
$PIP_CMD install -q setuptools==80.9.0 cython==3.0.12 wheel
|
|
# Set the commit SHA in _version.py.
|
|
if [ -n "$TRAVIS_COMMIT" ]; then
|
|
echo "TRAVIS_COMMIT variable detected. ray.__commit__ will be set to $TRAVIS_COMMIT"
|
|
else
|
|
echo "TRAVIS_COMMIT variable is not set, getting the current commit from git."
|
|
TRAVIS_COMMIT=$(git rev-parse HEAD)
|
|
fi
|
|
|
|
sed -i .bak "s/{{RAY_COMMIT_SHA}}/$TRAVIS_COMMIT/g" ray/_version.py && rm ray/_version.py.bak
|
|
|
|
# Add the correct Python to the path and build the wheel. This is only
|
|
# needed so that the installation finds the cython executable.
|
|
# build ray wheel
|
|
$PIP_CMD wheel -v -w dist . --no-deps
|
|
# build ray-cpp wheel
|
|
RAY_INSTALL_CPP=1 $PIP_CMD wheel -q -w dist . --no-deps
|
|
mv dist/*.whl ../.whl/
|
|
popd
|
|
|
|
# cleanup
|
|
conda deactivate
|
|
conda env remove -y -n "$CONDA_ENV_NAME"
|
|
done
|