| # 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. |
| |
| dist: bionic |
| |
| language: minimal |
| |
| cache: |
| directories: |
| - $TRAVIS_BUILD_DIR/.docker |
| |
| addons: |
| apt: |
| packages: |
| - python3-pip |
| |
| services: |
| - docker |
| |
| # Note that the global "env" setting isn't inherited automatically by |
| # matrix entries with their own "env", so we have to insert it explicitly. |
| env: &global_env |
| ARROW_ENABLE_TIMING_TESTS: "OFF" |
| COMPOSE_DOCKER_CLI_BUILD: 1 |
| DOCKER_BUILDKIT: 0 |
| DOCKER_VOLUME_PREFIX: $TRAVIS_BUILD_DIR/.docker/ |
| |
| jobs: |
| include: |
| - name: "C++ on ARM" |
| os: linux |
| arch: arm64 |
| env: |
| <<: *global_env |
| ARCH: arm64v8 |
| ARROW_CI_MODULES: "CPP" |
| DOCKER_IMAGE_ID: ubuntu-cpp |
| # ARROW_USE_GLOG=OFF is needed to avoid build error caused by |
| # glog and CMAKE_UNITY_BUILD=ON. |
| # |
| # Disable ARROW_S3 because it often causes "No output has |
| # been received in the last 10m0s, this potentially indicates |
| # a stalled build or something wrong with the build itself." |
| # on Travis CI. |
| # |
| # Limiting CPP_MAKE_PARALLELISM is required to avoid random compiler |
| # crashes. |
| DOCKER_RUN_ARGS: >- |
| " |
| -e ARROW_BUILD_STATIC=OFF |
| -e ARROW_ORC=OFF |
| -e ARROW_S3=OFF |
| -e ARROW_USE_GLOG=OFF |
| -e CMAKE_UNITY_BUILD=ON |
| -e CPP_MAKE_PARALLELISM=4 |
| " |
| # The LLVM's APT repository provides only arm64 binaries. |
| # We should use LLVM provided by Ubuntu. |
| LLVM: "10" |
| UBUNTU: "20.04" |
| |
| - name: "C++ on s390x" |
| os: linux |
| arch: s390x |
| env: |
| <<: *global_env |
| ARCH: s390x |
| ARROW_CI_MODULES: "CPP" |
| DOCKER_IMAGE_ID: ubuntu-cpp |
| # Can't enable ARROW_MIMALLOC because of failures in memory pool tests. |
| # Can't enable ARROW_S3 because compiler is killed while compiling |
| # aws-sdk-cpp. |
| DOCKER_RUN_ARGS: >- |
| " |
| -e ARROW_BUILD_STATIC=OFF |
| -e ARROW_FLIGHT=ON |
| -e ARROW_MIMALLOC=OFF |
| -e ARROW_ORC=OFF |
| -e ARROW_PARQUET=OFF |
| -e ARROW_S3=OFF |
| -e CMAKE_UNITY_BUILD=ON |
| -e CPP_MAKE_PARALLELISM=4 |
| -e PARQUET_BUILD_EXAMPLES=OFF |
| -e PARQUET_BUILD_EXECUTABLES=OFF |
| -e Protobuf_SOURCE=BUNDLED |
| -e cares_SOURCE=BUNDLED |
| -e gRPC_SOURCE=BUNDLED |
| " |
| # The LLVM's APT repository provides only arm64 binaries. |
| # We should use LLVM provided by Ubuntu. |
| LLVM: "10" |
| UBUNTU: "20.04" |
| |
| - name: "Go on s390x" |
| os: linux |
| arch: s390x |
| env: |
| <<: *global_env |
| ARCH: s390x |
| ARROW_CI_MODULES: "GO" |
| DOCKER_IMAGE_ID: debian-go |
| |
| - name: "Java on s390x" |
| os: linux |
| arch: s390x |
| env: |
| <<: *global_env |
| ARCH: s390x |
| ARROW_CI_MODULES: "JAVA" |
| DOCKER_IMAGE_ID: debian-java |
| JDK: 11 |
| |
| allow_failures: |
| - name: "Go on s390x" |
| - name: "Java on s390x" |
| |
| before_install: |
| - eval "$(python ci/detect-changes.py)" |
| - | |
| arrow_ci_affected=no |
| for arrow_ci_module in ${ARROW_CI_MODULES}; do |
| arrow_ci_affected_variable=ARROW_CI_${arrow_ci_module}_AFFECTED |
| if [ "$(eval "echo \$${arrow_ci_affected_variable}")" = "1" ]; then |
| arrow_ci_affected=yes |
| fi |
| done |
| if [ "${arrow_ci_affected}" = "no" ]; then |
| travis_terminate 0 |
| fi |
| |
| install: |
| - pip3 install -e dev/archery[docker] |
| |
| script: |
| - sudo sysctl -w kernel.core_pattern="core.%e.%p" |
| # This isn't allowed on Travis CI: |
| # /home/travis/.travis/functions: line 109: ulimit: core file size: cannot modify limit: Operation not permitted |
| - | |
| ulimit -c unlimited || : |
| - | |
| archery docker run \ |
| ${DOCKER_RUN_ARGS} \ |
| --volume ${PWD}/build:/build \ |
| ${DOCKER_IMAGE_ID} |
| |
| after_success: |
| - | |
| if [ "${TRAVIS_EVENT_TYPE}" = "push" -a \ |
| "${TRAVIS_REPO_SLUG}" = "apache/arrow" ]; then |
| archery docker push ${DOCKER_IMAGE_ID} || : |
| fi |