diff --git a/.travis.yml b/.travis.yml index 4361f1cb4..1bf9f7dda 100644 --- a/.travis.yml +++ b/.travis.yml @@ -176,10 +176,10 @@ matrix: - . ./ci/travis/ci.sh test_wheels - bash ./java/build-jar-multiplatform.sh darwin - # Build Linux wheels and multi-platform jars. + # Build Linux wheels and jars. - os: linux env: - - LINUX_WHEELS=1 MULTIPLATFORM_JARS=1 + - LINUX_WHEELS=1 LINUX_JARS=1 - PYTHONWARNINGS=ignore - RAY_INSTALL_JAVA=1 install: @@ -190,8 +190,21 @@ matrix: - . ./ci/travis/ci.sh test_wheels - if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then . $TRAVIS_BUILD_DIR/ci/travis/build-docker-images.sh; fi - bash ./java/build-jar-multiplatform.sh linux - #- bash ./java/build-jar-multiplatform.sh multiplatform - #- bash ./java/build-jar-multiplatform.sh deploy + cache: false + + # Build and deploy multi-platform jars. + - os: linux + env: + - MULTIPLATFORM_JARS=1 + - PYTHONWARNINGS=ignore + - RAY_INSTALL_JAVA=1 + - secure: "Un2SGOCdD/RiqbO47vtkwn5dPbGbwHi/TKunyNJLKcGILwJc0sZL9uf8pkffyYGbt7ejnYwV9tPgoAlFxcuJYgbmkt84AxDF8oskJmFKYjkxOtEFkqskhTb0u9/usjq23OXrmGN4NqvzLEdbf7Z3wyMxXpzgDKPUgDAFUfB2Ya8OapXuPdt/5KDlDBS0Bj9sKqI+0keYovfRY8dO2/Vd0Ojqkmz1PWHTQP0TrC1X+juciDdoRnU1rO8mxhQW4HKICexwAr1rsAqALpuDlfyhG7I+aicVjK3uiQuviGJOoI813f00YlTOAoXW2YPpblExp0uoTQN2zaYvpp1zUx7V/rVaAoXmFI7ELQ+nr8oAJbImWe1bCNO3UsxpzGamGlTIx7hAiJ0CwFU6qW/+NKWIlhH1iBxUZHw/F8Ixsqtdwx3yhR/rj86sdItAM9CkK6URVdWk2U4VimyDzzJpUWWFsjUZ2V8jNxYPrWg52ciC4k7tp32qrKYrBa+mJduE68/xjFeeZdYUxzg1AT3Lh3rA0ebMIELT7OBz6DRjUmRgO6+VJIRfbPszHEG2X+aPHtSj+Fsc4AacVtiIUUpXMeUx9nxM7oD1lXr8I59vq5+6EhohKBmc4DkpkWLnsCMTnJ1HQ37zKxRSE5jDwyNTJ8x2l8bbK/pqTRZPWUeKL3Is8NE=" + - secure: "IrNncc7RpiSnU/3fB72bG/Vyt/w50uTIVMIdgy64eNw0TgDf15/0IuwzCZDrjTAwq2meGAYFq1KNb7W538UDn+zJs6YIrcEF+2c53alCRASrafFEgAQmbvTpFtxAcHfTFK3c3neVXGiCeOSn64ymV5vQKjLCGvlEpmA10EUmdIE3wIgYRYMTzpzV9A4HmJbAgkBslhIw17BottFbfrL9Z4LlBJjOSP/t9cbGn8QVuM7V4dR+lo5j1Ns8XaVCkNvVqQdJEsp8xeMMn3pvFDxBBEn4zQ2xEGN4QvKquiACaVZLTnNCTkan5pRbswy25hOTnt/zNovJK8TBNuyWTBJNJo+f6vkuQXNR9iRkOQ+FAInjvEVYUWstuc6+opp8yV9cMdOsOMQRX/V6qo5pE2uERU0Fr6WtAhSvZDcGinpfoYkbMXxPdI8E7gmCJKrQ91hVU1ExokztbNesy7YWic/GZPzoBGMSPnNJ8chaydvmeq74P6F0cGI1LU/Tea7Ewf9MbJjWiVZ2C9G1Po3a6vu0ElE1NSIotBZFfpp2P8IeqP5/pZ84E93yRpT4Pt2kBsEjUqiNqLduXDPJnoBHHRzuNovT7sHJoZZAaBipuiNdj4ZQLgA+1WVysaHIDlzlcOMAxNNRMuT6+GATEvtsK8llh0qEzKShbOST54DDp1jST4w=" + install: + - . ./ci/travis/ci.sh init RAY_CI_JAVA_AFFECTED,RAY_CI_STREAMING_JAVA_AFFECTED + script: + - bash ./java/build-jar-multiplatform.sh multiplatform + - bash ./java/build-jar-multiplatform.sh deploy cache: false # RLlib: Learning tests (from rllib/tuned_examples/*.yaml). @@ -486,7 +499,7 @@ deploy: on: repo: ray-project/ray all_branches: true - condition: $MULTIPLATFORM_JARS = 1 || $MAC_JARS = 1 + condition: $MULTIPLATFORM_JARS = 1 || $MAC_JARS = 1 || $LINUX_JARS = 1 - provider: s3 edge: true # This supposedly opts in to deploy v2. @@ -502,5 +515,5 @@ deploy: on: repo: ray-project/ray branch: master - condition: $MULTIPLATFORM_JARS = 1 || $MAC_JARS = 1 + condition: $MULTIPLATFORM_JARS = 1 || $MAC_JARS = 1 || $LINUX_JARS = 1 diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 59e656e79..b53b7432f 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -77,6 +77,57 @@ For example, here are the Ray 0.9.0.dev0 wheels for Python 3.5, MacOS for commit pip install https://ray-wheels.s3-us-west-2.amazonaws.com/master/a0ba4499ac645c9d3e82e68f3a281e48ad57f873/ray-0.9.0.dev0-cp35-cp35m-macosx_10_13_intel.whl + +Install Ray With Maven +---------------------- + +The latest Ray Java release can be found in `central repository `__. To use the latest Ray Java release in your application, add the following entries in your ``pom.xml``: + +.. code-block:: xml + + + io.ray + ray-api + ${ray.version} + + + io.ray + ray-runtime + ${ray.version} + + +The latest Ray Java snapshot can be found in `sonatype repository `__. To use the latest Ray Java snapshot in your application, add the following entries in your ``pom.xml``: + +.. code-block:: xml + + + + + sonatype + https://oss.sonatype.org/content/repositories/snapshots/ + + false + + + true + + + + + + + io.ray + ray-api + ${ray.version} + + + io.ray + ray-runtime + ${ray.version} + + + + .. _windows-support: Windows Support diff --git a/doc/source/walkthrough.rst b/doc/source/walkthrough.rst index 423f59e9f..e22f6234d 100644 --- a/doc/source/walkthrough.rst +++ b/doc/source/walkthrough.rst @@ -22,7 +22,7 @@ Installation .. group-tab:: Java - To run this walkthrough, add `Ray API `_ and `Ray Runtime `_ as dependencies. We don't publish snapshot versions right now. + To run this walkthrough, add `Ray API `_ and `Ray Runtime `_ as dependencies. Snapshot versions can be found in `sonatype repository `_. Starting Ray ------------ diff --git a/java/build-jar-multiplatform.sh b/java/build-jar-multiplatform.sh index 97bbfc91f..b17a0914d 100755 --- a/java/build-jar-multiplatform.sh +++ b/java/build-jar-multiplatform.sh @@ -75,9 +75,12 @@ build_jars_multiplatform() { return fi fi - download_jars "ray-runtime-$version.jar" "streaming-runtime-$version.jar" - prepare_native - build_jars multiplatform false + if download_jars "ray-runtime-$version.jar" "streaming-runtime-$version.jar"; then + prepare_native + build_jars multiplatform false + else + echo "download_jars failed, skip building multiplatform jars" + fi } # Download darwin/windows ray-related jar from s3 @@ -101,9 +104,9 @@ download_jars() { echo "Waiting $url to be ready for $wait_time seconds..." sleep $sleep_time_units wait_time=$((wait_time + sleep_time_units)) - if [[ wait_time == $((60 * 120)) ]]; then + if [[ wait_time == $((sleep_time_units * 100)) ]]; then echo "Download $url timeout" - exit 1 + return 1 fi else echo "Download $url to $dest_file succeed" @@ -131,9 +134,27 @@ prepare_native() { done } +# Return 0 if native bianries and libraries exist and 1 if not. +native_files_exist() { + local os + for os in 'darwin' 'linux'; do + native_dirs=() + native_dirs+=("$WORKSPACE_DIR/java/runtime/native_dependencies/native/$os") + native_dirs+=("$WORKSPACE_DIR/streaming/java/streaming-runtime/native_dependencies/native/$os") + for native_dir in "${native_dirs[@]}"; do + if [ ! -d "$native_dir" ]; then + echo "$native_dir doesn't exist" + return 1 + fi + done + done +} + # This function assume all multiplatform binaries are prepared already. deploy_jars() { if [ "${TRAVIS-}" = true ]; then + mkdir -p ~/.m2 + echo "ossrh${OSSRH_KEY}${OSSRH_TOKEN}" > ~/.m2/settings.xml if [[ "$TRAVIS_REPO_SLUG" != "ray-project/ray" || "$TRAVIS_PULL_REQUEST" != "false" || "$TRAVIS_BRANCH" != "master" ]]; then echo "Skip deploying jars when this build is from a pull request or @@ -142,11 +163,19 @@ deploy_jars() { fi fi echo "Start deploying jars" - cd "$WORKSPACE_DIR/java" - mvn -T16 deploy -Dmaven.test.skip=true -Dcheckstyle.skip -Prelease - cd "$WORKSPACE_DIR/streaming/java" - mvn -T16 deploy -Dmaven.test.skip=true -Dcheckstyle.skip -Prelease - echo "Finished deploying jars" + if native_files_exist; then + ( + cd "$WORKSPACE_DIR/java" + mvn -T16 deploy -Dmaven.test.skip=true -Dcheckstyle.skip -Prelease + ) + ( + cd "$WORKSPACE_DIR/streaming/java" + mvn -T16 deploy -Dmaven.test.skip=true -Dcheckstyle.skip -Prelease + ) + echo "Finished deploying jars" + else + echo "Native bianries/libraries are not ready, skip deploying jars." + fi } case "$1" in @@ -167,4 +196,3 @@ deploy) # Deploy jars to maven repository. "$@" ;; esac -