| # 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: focal |
| |
| 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-graviton2 |
| # This is required for arm64-graviton2. |
| # https://docs.travis-ci.com/user/multi-cpu-architectures/#example-multi-architecture-build-matrix |
| group: edge |
| # This is required for arm64-graviton2. |
| # https://docs.travis-ci.com/user/multi-cpu-architectures/#testing-on-multiple-cpu-architectures |
| virt: vm |
| 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. |
| DOCKER_RUN_ARGS: >- |
| " |
| -e ARROW_BUILD_STATIC=OFF |
| -e ARROW_ORC=OFF |
| -e ARROW_USE_GLOG=OFF |
| -e CMAKE_UNITY_BUILD=ON |
| " |
| # The LLVM's APT repository doesn't provide arm64 binaries. |
| # We should use LLVM provided by Ubuntu. |
| LLVM: "10" |
| UBUNTU: "20.04" |
| |
| - name: "Go on ARM" |
| os: linux |
| arch: arm64-graviton2 |
| group: edge |
| virt: vm |
| env: |
| <<: *global_env |
| ARCH: arm64v8 |
| ARROW_CI_MODULES: "GO" |
| DOCKER_IMAGE_ID: debian-go |
| |
| - 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_FLIGHT=ON |
| -e ARROW_GCS=OFF |
| -e ARROW_MIMALLOC=OFF |
| -e ARROW_ORC=OFF |
| -e ARROW_PARQUET=OFF |
| -e ARROW_S3=OFF |
| -e ARROW_SUBSTRAIT=OFF |
| -e CMAKE_BUILD_PARALLEL_LEVEL=2 |
| -e CMAKE_UNITY_BUILD=ON |
| -e PARQUET_BUILD_EXAMPLES=OFF |
| -e PARQUET_BUILD_EXECUTABLES=OFF |
| -e Protobuf_SOURCE=BUNDLED |
| -e gRPC_SOURCE=BUNDLED |
| " |
| # The LLVM's APT repository causes download error for s390x binary |
| # We should use the LLVM provided by the default APT repository |
| 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 |
| |
| - name: "Python on s390x" |
| os: linux |
| arch: s390x |
| env: |
| <<: *global_env |
| ARCH: s390x |
| ARROW_CI_MODULES: "PYTHON" |
| DOCKER_IMAGE_ID: ubuntu-python |
| # 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_FLIGHT=ON |
| -e ARROW_GCS=OFF |
| -e ARROW_MIMALLOC=OFF |
| -e ARROW_ORC=OFF |
| -e ARROW_PARQUET=OFF |
| -e ARROW_PYTHON=ON |
| -e ARROW_S3=OFF |
| -e CMAKE_BUILD_PARALLEL_LEVEL=2 |
| -e CMAKE_UNITY_BUILD=ON |
| -e PARQUET_BUILD_EXAMPLES=OFF |
| -e PARQUET_BUILD_EXECUTABLES=OFF |
| -e Protobuf_SOURCE=BUNDLED |
| -e gRPC_SOURCE=BUNDLED |
| " |
| |
| allow_failures: |
| - name: "Java on s390x" |
| - name: "C++ on s390x" |
| - name: "Python 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: |
| - sudo -H pip3 install --upgrade pip |
| - sudo -H pip3 install 'docker-compose>=1.27.0' |
| - sudo -H pip3 install -e dev/archery[docker] |
| |
| script: |
| - | |
| 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 |