language: generic # Use Ubuntu 16.04 dist: xenial matrix: include: - os: linux env: BAZEL_PYTHON_VERSION=PY2 PYTHON=2.7 PYTHONWARNINGS=ignore - os: linux env: BAZEL_PYTHON_VERSION=PY3 PYTHON=3.5 PYTHONWARNINGS=ignore - os: osx osx_image: xcode7 env: BAZEL_PYTHON_VERSION=PY2 PYTHON=2.7 PYTHONWARNINGS=ignore - os: osx osx_image: xcode7 env: BAZEL_PYTHON_VERSION=PY3 PYTHON=3.5 PYTHONWARNINGS=ignore - os: linux env: - JDK='Oracle JDK 8' - PYTHON=3.5 PYTHONWARNINGS=ignore - RAY_INSTALL_JAVA=1 install: - eval `python $TRAVIS_BUILD_DIR/ci/travis/determine_tests_to_run.py` - if [ $RAY_CI_JAVA_AFFECTED != "1" ]; then exit; fi - ./ci/suppress_output ./ci/travis/install-bazel.sh - ./ci/suppress_output ./ci/travis/install-dependencies.sh - export PATH="$HOME/miniconda/bin:$PATH" - ./ci/suppress_output ./ci/travis/install-ray.sh script: - if [ $RAY_CI_JAVA_AFFECTED != "1" ]; then exit; fi - ./java/test.sh - os: linux env: LINT=1 PYTHONWARNINGS=ignore before_install: - sudo apt-get update -qq install: [] script: - ./ci/travis/check-git-clang-format-output.sh # Try generating Sphinx documentation. To do this, we need to install # Ray first. - ./ci/travis/install-dependencies.sh - export PATH="$HOME/miniconda/bin:$PATH" - cd doc - pip install -q -r requirements-doc.txt - pip install -q yapf==0.23.0 - sphinx-build -W -b html -d _build/doctrees source _build/html - cd .. # Run Python linting, ignore dict vs {} (C408), others are defaults - flake8 --inline-quotes '"' --no-avoid-escape --exclude=python/ray/core/generated/,doc/source/conf.py,python/ray/cloudpickle/ --ignore=C408,E121,E123,E126,E226,E24,E704,W503,W504,W605 - ./ci/travis/format.sh --all # Make sure that the README is formatted properly. - cd python - python setup.py check --restructuredtext --strict --metadata - cd .. # Run Bazel linter Buildifier. - wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz - tar -xf go1.11.linux-amd64.tar.gz - mkdir $HOME/go_dir - export GOROOT=`pwd`/go - export GOPATH="$HOME/go_dir" - export PATH="$GOROOT/bin:$GOPATH/bin:$PATH" - go get github.com/bazelbuild/buildtools/buildifier - ./ci/travis/bazel-format.sh - os: linux env: VALGRIND=1 PYTHON=2.7 PYTHONWARNINGS=ignore before_install: - eval `python $TRAVIS_BUILD_DIR/ci/travis/determine_tests_to_run.py` - if [ $RAY_CI_PYTHON_AFFECTED != "1" ]; then exit; fi # Install a newer version of valgrind, the one that comes with # Ubuntu 16.04 is broken (Illegal instruction) - sudo add-apt-repository -y ppa:msulikowski/valgrind - sudo apt-get update -qq - sudo apt-get install -qq valgrind install: - if [ $RAY_CI_PYTHON_AFFECTED != "1" ]; then exit; fi - ./ci/suppress_output ./ci/travis/install-bazel.sh - ./ci/suppress_output ./ci/travis/install-dependencies.sh - export PATH="$HOME/miniconda/bin:$PATH" - ./ci/suppress_output ./ci/travis/install-ray.sh script: - if [ $RAY_CI_PYTHON_AFFECTED != "1" ]; then exit; fi - bash src/ray/test/run_object_manager_valgrind.sh - export RAY_PLASMA_STORE_VALGRIND=1 # - export RAY_RAYLET_VALGRIND=1 # - export RAY_RAYLET_MONITOR_VALGRIND=1 # - export RAY_REDIS_SERVER_VALGRIND=1 # # Python3.5+ only. Otherwise we will get `SyntaxError` regardless of how we set the tester. - python -c 'import sys;exit(sys.version_info>=(3,5))' || python -m pytest -v --durations=5 python/ray/experimental/test/async_test.py - python -m pytest -v --durations=5 --timeout=300 python/ray/tests/test_mini.py - python -m pytest -v --durations=5 --timeout=300 python/ray/tests/test_array.py - python -m pytest -v --durations=5 --timeout=300 python/ray/tests/test_multi_node_2.py - python -m pytest -v --durations=5 --timeout=300 python/ray/tests/test_node_manager.py # Build Linux wheels. - os: linux env: LINUX_WHEELS=1 PYTHONWARNINGS=ignore install: - eval `python $TRAVIS_BUILD_DIR/ci/travis/determine_tests_to_run.py` - if [ $RAY_CI_LINUX_WHEELS_AFFECTED != "1" ]; then exit; fi - ./ci/suppress_output ./ci/travis/install-dependencies.sh # Mount bazel cache dir to the docker container. # For the linux wheel build, we use a shared cache between all # wheels, but not between different travis runs, because that # caused timeouts in the past. See the "cache: false" line below. - export MOUNT_BAZEL_CACHE="-v $HOME/ray-bazel-cache:/root/ray-bazel-cache -e TRAVIS=true -e TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST -e encrypted_1c30b31fe1ee_key=$encrypted_1c30b31fe1ee_key -e encrypted_1c30b31fe1ee_iv=$encrypted_1c30b31fe1ee_iv" # This command should be kept in sync with ray/python/README-building-wheels.md, # except the `$MOUNT_BAZEL_CACHE` part. - ./ci/suppress_output docker run --rm -w /ray -v `pwd`:/ray $MOUNT_BAZEL_CACHE -ti rayproject/arrow_linux_x86_64_base:latest /ray/python/build-wheel-manylinux1.sh script: - if [ $RAY_CI_LINUX_WHEELS_AFFECTED != "1" ]; then exit; fi - ./ci/travis/test-wheels.sh cache: false # Build MacOS wheels. - os: osx osx_image: xcode7 env: MAC_WHEELS=1 PYTHONWARNINGS=ignore install: - eval `python $TRAVIS_BUILD_DIR/ci/travis/determine_tests_to_run.py` - if [ $RAY_CI_MACOS_WHEELS_AFFECTED != "1" ]; then exit; fi - ./ci/suppress_output ./ci/travis/install-dependencies.sh # This command should be kept in sync with ray/python/README-building-wheels.md. - ./ci/suppress_output ./python/build-wheel-macos.sh script: - if [ $RAY_CI_MACOS_WHEELS_AFFECTED != "1" ]; then exit; fi - ./ci/travis/test-wheels.sh install: - eval `python $TRAVIS_BUILD_DIR/ci/travis/determine_tests_to_run.py` - if [ $RAY_CI_SERVE_AFFECTED != "1" ] && [ $RAY_CI_TUNE_AFFECTED != "1" ] && [ $RAY_CI_RLLIB_AFFECTED != "1" ] && [ $RAY_CI_PYTHON_AFFECTED != "1" ]; then exit; fi - ./ci/suppress_output ./ci/travis/install-bazel.sh - ./ci/suppress_output ./ci/travis/install-dependencies.sh - export PATH="$HOME/miniconda/bin:$PATH" - ./ci/suppress_output ./ci/travis/install-ray.sh - ./ci/suppress_output ./ci/travis/install-cython-examples.sh script: - export PATH="$HOME/miniconda/bin:$PATH" # raylet integration tests - ./ci/suppress_output bash src/ray/test/run_gcs_tests.sh - ./ci/suppress_output bash src/ray/test/run_core_worker_tests.sh - ./ci/suppress_output bash src/ray/test/run_object_manager_tests.sh # cc bazel tests - ./ci/suppress_output bazel test --build_tests_only --show_progress_rate_limit=100 --test_output=errors //:all # ray serve tests - if [ $RAY_CI_SERVE_AFFECTED == "1" ]; then python -c 'import sys;exit(sys.version_info>=(3,5))' || python -m pytest -v --durations=5 --timeout=300 python/ray/experimental/serve/tests; fi - if [ $RAY_CI_SERVE_AFFECTED == "1" ]; then python -c 'import sys;exit(sys.version_info>=(3,5))' || ./ci/suppress_output python python/ray/experimental/serve/examples/echo_full.py; fi # ray tests # Python3.5+ only. Otherwise we will get `SyntaxError` regardless of how we set the tester. - if [ $RAY_CI_PYTHON_AFFECTED == "1" ]; then python -c 'import sys;exit(sys.version_info>=(3,5))' || python -m pytest -v --durations=5 --timeout=300 python/ray/experimental/test/async_test.py; fi - if [ $RAY_CI_PYTHON_AFFECTED == "1" ]; then python -c 'import sys;exit(sys.version_info>=(3,5))' || python -m pytest -v --durations=5 --timeout=300 python/ray/tests/py3_test.py; fi # py bazel tests, run using local strategy since PY2 breaks with sandbox - bazel test --spawn_strategy=local --python_version=$BAZEL_PYTHON_VERSION --incompatible_allow_python_version_transitions=false --incompatible_py3_is_default=false --show_progress_rate_limit=100 --show_timestamps --test_output=errors --test_tag_filters=-jenkins_only python/ray/... deploy: - provider: s3 access_key_id: AKIAU6DMUCJUFL3EX3SM secret_access_key: secure: J1sX71fKFPQhgWzColllxfzcF877ScBZ1cIl71krZ6SO0LKnwsCScpQck5eZOyQo/Iverwye0iKtE87qNsiRi3+V2D9iulSr18T09j7+FjPKfxAmXmjfrNafoMXTDQroSJblCri5vl+DysISPqImJkWTNaYhGJ9QakoSd5djnAopLNWj6PCR3S50baS49+nB5nSIY3jMhtUzlaBdniFPFC81Cxyuafr4pv6McGRfR/dK+ZnPhdGtMnVeIJXB+ooZKQ26mDJKBPka4jm3u1Oa72b/Atu2RO3MwxTg79LTrMxXKh2OcCqhtD2Z3lz1OltvNSunCuwY8AejCJsfSLbM9mGDoz+xhNUWmYNy48YFf+61OY8PXi8S/9Q817yb3GpLbb2l/P+KMgq9eSEiELIOwuYsDxPX5TuAg6dx0wCNgDEBJoThSQjYl6MgJrLrs7p+JBxp3giedHiy0TLa5hCVKTj3euONAXDArYnnT+DvUIOkaeTk5DClRZbZ0sUXhLy//HuT5WJvjFBJJZ0u0f4RLVb5D7DI4uMZr7+yJPDR2AXCyW9YMaBEbmEYbPaKi283jlEyn7R33+AZlnXv0THHwZ4xvjKKG3/fBSXsOUmv5wmUveEqVGDj1mKPGj9NF8iA5qMm2AaZuJpEEBVBZtSlTZt6ZG7rzAJZGNL52t7xuMo= bucket: ray-wheels acl: public_read region: us-west-2 local_dir: .whl upload-dir: "$TRAVIS_BRANCH/$TRAVIS_COMMIT" skip_cleanup: true on: repo: ray-project/ray all_branches: true condition: $LINUX_WHEELS = 1 || $MAC_WHEELS = 1 - provider: s3 access_key_id: AKIAU6DMUCJUFL3EX3SM secret_access_key: secure: J1sX71fKFPQhgWzColllxfzcF877ScBZ1cIl71krZ6SO0LKnwsCScpQck5eZOyQo/Iverwye0iKtE87qNsiRi3+V2D9iulSr18T09j7+FjPKfxAmXmjfrNafoMXTDQroSJblCri5vl+DysISPqImJkWTNaYhGJ9QakoSd5djnAopLNWj6PCR3S50baS49+nB5nSIY3jMhtUzlaBdniFPFC81Cxyuafr4pv6McGRfR/dK+ZnPhdGtMnVeIJXB+ooZKQ26mDJKBPka4jm3u1Oa72b/Atu2RO3MwxTg79LTrMxXKh2OcCqhtD2Z3lz1OltvNSunCuwY8AejCJsfSLbM9mGDoz+xhNUWmYNy48YFf+61OY8PXi8S/9Q817yb3GpLbb2l/P+KMgq9eSEiELIOwuYsDxPX5TuAg6dx0wCNgDEBJoThSQjYl6MgJrLrs7p+JBxp3giedHiy0TLa5hCVKTj3euONAXDArYnnT+DvUIOkaeTk5DClRZbZ0sUXhLy//HuT5WJvjFBJJZ0u0f4RLVb5D7DI4uMZr7+yJPDR2AXCyW9YMaBEbmEYbPaKi283jlEyn7R33+AZlnXv0THHwZ4xvjKKG3/fBSXsOUmv5wmUveEqVGDj1mKPGj9NF8iA5qMm2AaZuJpEEBVBZtSlTZt6ZG7rzAJZGNL52t7xuMo= bucket: ray-wheels acl: public_read region: us-west-2 local_dir: .whl upload-dir: latest skip_cleanup: true only: - master on: repo: ray-project/ray condition: $LINUX_WHEELS = 1 || $MAC_WHEELS = 1 cache: directories: - $HOME/ray-bazel-cache