| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| sudo: required |
| dist: trusty |
| |
| services: |
| - docker |
| |
| cache: |
| ccache: true |
| directories: |
| - $HOME/.m2 # Maven |
| |
| git: |
| # ARROW-3083: We use a higher clone depth to also have the latest tag in the cloned history. |
| depth: 250 |
| |
| |
| before_install: |
| # Common pre-install steps for all builds |
| - ulimit -c unlimited -S |
| - | |
| if [ $TRAVIS_OS_NAME == "linux" ]; then |
| sudo bash -c "echo -e 'Acquire::Retries 10; Acquire::http::Timeout \"20\";' > /etc/apt/apt.conf.d/99-travis-retry" |
| sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test |
| sudo apt-get update -qq |
| fi |
| - eval `python $TRAVIS_BUILD_DIR/ci/detect-changes.py` |
| |
| |
| matrix: |
| fast_finish: true |
| allow_failures: |
| - jdk: oraclejdk9 |
| include: |
| # C++ & Python w/ clang 6.0 |
| - compiler: gcc |
| language: cpp |
| os: linux |
| jdk: openjdk8 |
| env: |
| - ARROW_TRAVIS_USE_TOOLCHAIN=1 |
| - ARROW_TRAVIS_VALGRIND=1 |
| - ARROW_TRAVIS_PLASMA=1 |
| - ARROW_TRAVIS_ORC=1 |
| - ARROW_TRAVIS_CLANG_FORMAT=1 |
| - ARROW_TRAVIS_COVERAGE=1 |
| - ARROW_TRAVIS_PARQUET=1 |
| - ARROW_TRAVIS_PYTHON_DOCS=1 |
| - ARROW_BUILD_WARNING_LEVEL=CHECKIN |
| - ARROW_TRAVIS_PYTHON_JVM=1 |
| - ARROW_TRAVIS_JAVA_BUILD_ONLY=1 |
| # ARROW-2999 Benchmarks are disabled in Travis CI for the time being |
| # - ARROW_TRAVIS_PYTHON_BENCHMARKS=1 |
| - CC="clang-6.0" |
| - CXX="clang++-6.0" |
| before_script: |
| # Always run RAT checks, in case another build in matrix breaks RAT |
| - $TRAVIS_BUILD_DIR/ci/travis_release_audit.sh |
| # (ARROW_CI_CPP_AFFECTED implies ARROW_CI_PYTHON_AFFECTED) |
| - if [ $ARROW_CI_PYTHON_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_install_clang_tools.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_lint.sh |
| # If either C++ or Python changed, we must install the C++ libraries |
| - git submodule update --init |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh |
| script: |
| # All test steps are required for accurate C++ coverage info |
| - $TRAVIS_BUILD_DIR/ci/travis_script_cpp.sh |
| # Build Arrow Java to test the pyarrow<->JVM in-process bridge |
| - $TRAVIS_BUILD_DIR/ci/travis_script_java.sh |
| # Only run Plasma tests with valgrind in one of the Python builds because |
| # they are slow |
| - export PLASMA_VALGRIND=0 |
| - $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 2.7 |
| - export PLASMA_VALGRIND=1 |
| - $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 3.6 |
| - $TRAVIS_BUILD_DIR/ci/travis_upload_cpp_coverage.sh |
| # [OS X] C++ & Python w/ XCode 6.4 |
| - compiler: clang |
| language: cpp |
| osx_image: xcode6.4 |
| os: osx |
| cache: |
| addons: |
| env: |
| - ARROW_TRAVIS_USE_TOOLCHAIN=1 |
| - ARROW_TRAVIS_PLASMA=1 |
| - ARROW_TRAVIS_ORC=1 |
| - ARROW_TRAVIS_PARQUET=1 |
| - ARROW_BUILD_WARNING_LEVEL=CHECKIN |
| before_script: |
| - if [ $ARROW_CI_PYTHON_AFFECTED != "1" ]; then exit; fi |
| # If either C++ or Python changed, we must install the C++ libraries |
| - git submodule update --init |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh |
| script: |
| - if [ $ARROW_CI_CPP_AFFECTED == "1" ]; then $TRAVIS_BUILD_DIR/ci/travis_script_cpp.sh; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 2.7 |
| - $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 3.6 |
| # [manylinux1] Python |
| - language: cpp |
| before_script: |
| - if [ $ARROW_CI_PYTHON_AFFECTED == "1" ]; then docker pull quay.io/xhochy/arrow_manylinux1_x86_64_base:latest; fi |
| script: |
| - if [ $ARROW_CI_PYTHON_AFFECTED == "1" ]; then $TRAVIS_BUILD_DIR/ci/travis_script_manylinux.sh; fi |
| # Java w/ OpenJDK 8 |
| - language: java |
| os: linux |
| jdk: openjdk8 |
| before_script: |
| - if [ $ARROW_CI_JAVA_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh |
| script: |
| - $TRAVIS_BUILD_DIR/ci/travis_script_java.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_script_javadoc.sh |
| # Java w/ Oracle JDK 9 |
| - language: java |
| os: linux |
| jdk: oraclejdk9 |
| before_script: |
| - if [ $ARROW_CI_JAVA_AFFECTED != "1" ]; then exit; fi |
| script: |
| - $TRAVIS_BUILD_DIR/ci/travis_script_java.sh |
| addons: |
| apt: |
| packages: |
| - oracle-java9-installer |
| # Integration w/ OpenJDK 8 |
| - language: java |
| os: linux |
| env: ARROW_TEST_GROUP=integration |
| jdk: openjdk8 |
| env: |
| - ARROW_TRAVIS_PLASMA=1 |
| - ARROW_TRAVIS_PLASMA_JAVA_CLIENT=1 |
| - CC="clang-6.0" |
| - CXX="clang++-6.0" |
| before_script: |
| - if [ $ARROW_CI_INTEGRATION_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_install_clang_tools.sh |
| - nvm install 10.1 |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_js.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh |
| script: |
| - $TRAVIS_BUILD_DIR/ci/travis_script_integration.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_script_plasma_java_client.sh |
| # NodeJS |
| - language: node_js |
| os: linux |
| node_js: |
| - '10.1' |
| before_script: |
| - if [ $ARROW_CI_JS_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_js.sh |
| script: |
| - $TRAVIS_BUILD_DIR/ci/travis_script_js.sh |
| # C++ & GLib & Ruby w/ gcc 4.9 |
| - compiler: gcc |
| language: cpp |
| os: linux |
| env: |
| - ARROW_TRAVIS_ORC=1 |
| - ARROW_TRAVIS_PARQUET=1 |
| - BUILD_TORCH_EXAMPLE=no |
| - CC="gcc-4.9" |
| - CXX="g++-4.9" |
| before_script: |
| - if [ $ARROW_CI_RUBY_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh --only-library |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_c_glib.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_ruby.sh |
| script: |
| - if [ $ARROW_CI_C_GLIB_AFFECTED = "1" ]; then $TRAVIS_BUILD_DIR/ci/travis_script_c_glib.sh; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_script_ruby.sh |
| # [OS X] C++ & GLib & Ruby w/ XCode 8.3 & homebrew |
| - compiler: clang |
| osx_image: xcode8.3 |
| os: osx |
| env: |
| - ARROW_TRAVIS_ORC=1 |
| cache: |
| addons: |
| rvm: 2.2 |
| before_script: |
| - if [ $ARROW_CI_RUBY_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_osx.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh --only-library --homebrew |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_c_glib.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_ruby.sh |
| script: |
| - if [ $ARROW_CI_C_GLIB_AFFECTED = "1" ]; then $TRAVIS_BUILD_DIR/ci/travis_script_c_glib.sh; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_script_ruby.sh |
| # Rust |
| - language: rust |
| cache: cargo |
| addons: |
| apt: |
| packages: |
| - libcurl4-openssl-dev |
| - libelf-dev |
| - libdw-dev |
| - binutils-dev |
| - cmake |
| before_script: |
| - if [ $ARROW_CI_RUST_AFFECTED != "1" ]; then exit; fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_cargo.sh |
| script: |
| - RUSTUP_TOOLCHAIN=stable $TRAVIS_BUILD_DIR/ci/travis_script_rust.sh |
| - RUSTUP_TOOLCHAIN=nightly $TRAVIS_BUILD_DIR/ci/travis_script_rust.sh || true |
| after_success: |
| - pushd ${TRAVIS_BUILD_DIR}/rust |
| # Run coverage for codecov.io |
| - mkdir -p target/kcov |
| - RUST_BACKTRACE=1 RUSTUP_TOOLCHAIN=stable cargo coverage --verbose |
| - bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" |
| # Go |
| - language: go |
| go_import_path: github.com/apache/arrow |
| os: linux |
| go: |
| - 1.10.x |
| before_script: |
| - if [ $ARROW_CI_GO_AFFECTED != "1" ]; then exit; fi |
| script: |
| - $TRAVIS_BUILD_DIR/ci/travis_script_go.sh |
| after_success: |
| - pushd ${TRAVIS_BUILD_DIR}/go/arrow |
| - bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" |
| # R |
| - language: r |
| cache: packages |
| latex: false |
| before_install: |
| # Have to copy-paste this here because of how R's build steps work |
| - eval `python $TRAVIS_BUILD_DIR/ci/detect-changes.py` |
| - if [ $ARROW_CI_R_AFFECTED != "1" ]; then exit; fi |
| - | |
| if [ $TRAVIS_OS_NAME == "linux" ]; then |
| sudo bash -c "echo -e 'Acquire::Retries 10; Acquire::http::Timeout \"20\";' > /etc/apt/apt.conf.d/99-travis-retry" |
| sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test |
| sudo apt-get update -qq |
| fi |
| - $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh --only-library |
| - $TRAVIS_BUILD_DIR/ci/travis_install_clang_tools.sh |
| - $TRAVIS_BUILD_DIR/ci/travis_lint.sh |
| - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/cpp-install/lib |
| - export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$TRAVIS_BUILD_DIR/cpp-install/lib/pkgconfig |
| - pushd ${TRAVIS_BUILD_DIR}/r |
| |
| |
| after_failure: |
| - | |
| if [ "$TRAVIS_OS_NAME" = "osx" ]; then |
| COREFILE=$(find /cores -maxdepth 1 -type f -name "core.*" | head -n 1) |
| if [[ -f "$COREFILE" ]]; then |
| lldb -c "$COREFILE" --batch --one-line "thread backtrace all -e true" |
| fi |
| ls -la ~/Library/Logs/DiagnosticReports/ |
| cat ~/Library/Logs/DiagnosticReports/*.crash |
| else |
| COREFILE=$(find . -maxdepth 2 -name "core*" | head -n 1) |
| if [[ -f "$COREFILE" ]]; then |
| gdb -c "$COREFILE" example -ex "thread apply all bt" -ex "set pagination 0" -batch |
| fi |
| fi |
| |
| env: |
| global: |
| - secure: "GcrPtsKUCgNY7HKYjWlHQo8SiFrShDvdZSU8t1m1FJrE+UfK0Dgh9zXmAausM8GmhqSwkF0q4UbLQf2uCnSITWKeEPAL8Mo9eu4ib+ikJx/b3Sk81frgW5ADoHfW1Eyqd8xJNIMwMegJOtRLSDqiXh1CvMlKnY8PyTOGM2DgN9ona/v6p9OFH9Qs0JhBRVXAn0S4ztjumck8E56+01hqRfxbZ88pTfpKghBxYp9PJaMjtGdomjVWlqPaWaWJj+KptT8inV9NK+TVYKx0dXWD+S1Vgr1PytQnLdILOYV23gsOBYqn33ByF/yADl4m3hUjU/qeT0Fi7aWxmVpj+oTJISOSH5N8nIsuNH8mQk2ZzzXHfV7btFvP+cOPRczadoKkT6D6cHA8nQ7b0dphC6bl6SAeSfc/cbhRT+fYnIjg8jFXC8jlyWBr7LR6GXVpc0bND7i300ITo0FuRJhy2OxqPtGo3dKLE7eAcv78tuO0OYJ/kol1PEqFdFkbYbNVbg/cFpbGqiCXDsOtPDbAGBv69YnXdVowSxxs8cRGjSkDydv6ZSytb/Zd4lH/KAomcFNk8adx12O1Lk4sbmVav1cGig5P6OcQKS0jC5IiRb4THcQzVzAkXXbaafKm5sru/NoYxhzmkyhkOc11nTYHKVng+XKWzLCNn7pTTSLitp5+xa4=" |