ray/.buildkite/pipeline.macos.yml
matthewdeng 01d473b355
[ci] print out test environment info for all python tests (#27312)
Recently there have been a number of CI test failures due to direct or transitive dependency version upgrades. Printing out environment information for each test suite allows us to quickly check the diff between failed and successful runs.

**Notes:**
1. In this PR I just manually added `./ci/env/env_info.sh` to each test suite. We may want to generalize this in the future.
2. This is just for CI now, but is applicable to release tests as well.

Signed-off-by: Matthew Deng <matt@anyscale.com>
2022-08-01 09:55:13 +01:00

130 lines
5 KiB
YAML

common: &common
env:
BUILDKITE: "true"
CI: "true"
PYTHON: "3.6"
RAY_USE_RANDOM_PORTS: "1"
RAY_DEFAULT_BUILD: "1"
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
prelude_commands: &prelude_commands |-
rm -rf /tmp/bazel_event_logs
cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/build/upload_build_info.sh; fi }; trap cleanup EXIT
(which bazel && bazel clean) || true;
./ci/ci.sh init && source ~/.zshrc
./ci/ci.sh build
./ci/env/install-dependencies.sh
./ci/env/env_info.sh
epilogue_commands: &epilogue_commands |-
# Cleanup runtime environment to save storage
rm -rf /tmp/ray || true
# Cleanup local caches (this shouldn't clean up global disk cache)
bazel clean
steps:
- label: ":mac: :apple: Wheels and Jars"
<<: *common
conditions: ["RAY_CI_MACOS_WHEELS_AFFECTED", "RAY_CI_PYTHON_DEPENDENCIES_AFFECTED"]
commands:
# Cleanup environments
- rm -rf /tmp/bazel_event_logs
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/build/upload_build_info.sh; fi }; trap cleanup EXIT
- (which bazel && bazel clean) || true
# TODO(simon): make sure to change both PR and wheel builds
# Special setup for jar builds (will be installed to the machine instead)
# - brew remove --force java & brew uninstall --force java & rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask
# - brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
- diskutil list external physical
- export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
- java -version
# Build wheels
- export UPLOAD_WHEELS_AS_ARTIFACTS=1
- export MAC_WHEELS=1
- export MAC_JARS=1
- export RAY_INSTALL_JAVA=1
- ./ci/ci.sh init && source ~/.zshrc
- ./ci/ci.sh build
# Test wheels
- ./ci/ci.sh test_wheels
# Build jars
- bash ./java/build-jar-multiplatform.sh darwin
# Upload the wheels and jars
# We don't want to push on PRs, in fact, the copy_files will fail because unauthenticated.
- if [ "$BUILDKITE_PULL_REQUEST" != "false" ]; then exit 0; fi
- pip install -q docker aws_requests_auth boto3
# Upload to branch directory.
- python .buildkite/copy_files.py --destination branch_wheels --path ./.whl
- python .buildkite/copy_files.py --destination branch_jars --path ./.jar/darwin
# Upload to latest directory.
- if [ "$BUILDKITE_BRANCH" = "master" ]; then python .buildkite/copy_files.py --destination wheels --path ./.whl; fi
- if [ "$BUILDKITE_BRANCH" = "master" ]; then python .buildkite/copy_files.py --destination jars --path ./.jar/darwin; fi
- label: ":mac: :apple: Ray Core Unit Tests and Dashboard"
<<: *common
conditions: ["RAY_CI_CORE_CPP_AFFECTED", "RAY_CI_PYTHON_AFFECTED", "RAY_CI_DASHBOARD_AFFECTED"]
commands:
- *prelude_commands
- TORCH_VERSION=1.6 ./ci/env/install-dependencies.sh
# Use --dynamic_mode=off until MacOS CI runs on Big Sur or newer. Otherwise there are problems with running tests
# with dynamic linking.
- bazel test --config=ci --dynamic_mode=off --test_env=CI $(./ci/run/bazel_export_options) --build_tests_only --test_tag_filters=-post_wheel_build --
//:all python/ray/dashboard/... -python/ray/serve/... -rllib/... -core_worker_test
- *epilogue_commands
- label: ":mac: :apple: Ray C++ and Java"
<<: *common
conditions: ["RAY_CI_CPP_AFFECTED", "RAY_CI_JAVA_AFFECTED"]
commands:
- export RAY_INSTALL_JAVA=1
- *prelude_commands
# clang-format is needed by java/test.sh
- pip install clang-format==12.0.1
- ./java/test.sh
- ./ci/ci.sh test_cpp
- *epilogue_commands
- label: ":mac: :apple: Small & Client"
<<: *common
conditions: ["RAY_CI_CORE_CPP_AFFECTED", "RAY_CI_PYTHON_AFFECTED"]
commands:
- *prelude_commands
- bazel test $(./ci/run/bazel_export_options) --config=ci
--test_env=CONDA_EXE --test_env=CONDA_PYTHON_EXE --test_env=CONDA_SHLVL --test_env=CONDA_PREFIX
--test_env=CONDA_DEFAULT_ENV --test_env=CONDA_PROMPT_MODIFIER --test_env=CI
--test_tag_filters=client_tests,small_size_python_tests
-- python/ray/tests/...
- *epilogue_commands
- label: ":mac: :apple: Large"
<<: *common
parallelism: 3
conditions: ["RAY_CI_CORE_CPP_AFFECTED", "RAY_CI_PYTHON_AFFECTED"]
commands:
- *prelude_commands
- ./ci/ci.sh test_large
- *epilogue_commands
- label: ":mac: :apple: Medium A-J"
<<: *common
conditions: ["RAY_CI_CORE_CPP_AFFECTED", "RAY_CI_PYTHON_AFFECTED"]
commands:
- *prelude_commands
- bazel test --config=ci $(./ci/run/bazel_export_options) --test_env=CI
--test_tag_filters=-kubernetes,medium_size_python_tests_a_to_j
python/ray/tests/...
- *epilogue_commands
- label: ":mac: :apple: Medium K-Z"
<<: *common
conditions: ["RAY_CI_CORE_CPP_AFFECTED", "RAY_CI_PYTHON_AFFECTED"]
commands:
- *prelude_commands
- bazel test --config=ci $(./ci/run/bazel_export_options) --test_env=CI
--test_tag_filters=-kubernetes,medium_size_python_tests_k_to_z
python/ray/tests/...
- *epilogue_commands