| # |
| # 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 |
| # |
| |
| jobs: |
| allow_failures: |
| - os: osx |
| include: |
| - os: linux |
| dist: xenial |
| language: cpp |
| compiler: gcc |
| env: |
| - OPENSSL_ia32cap='0x00000000' |
| - os: linux |
| dist: xenial |
| language: cpp |
| compiler: clang |
| env: |
| - OPENSSL_ia32cap='0x00000000' |
| # c-threaderciser test hangs on older clang |
| - QPID_PROTON_CMAKE_ARGS='-DENABLE_LINKTIME_OPTIMIZATION=OFF -DTHREADERCISER=ON' |
| - QPID_PROTON_CTEST_ARGS='--exclude-regex c-threaderciser' |
| - name: static libs |
| os: linux |
| dist: focal |
| language: cpp |
| compiler: gcc |
| env: |
| - PYTHON=python3 |
| - QPID_PROTON_CMAKE_ARGS='-DBUILD_STATIC_LIBS=ON -DTHREADERCISER=ON' |
| - name: benchmarks |
| os: linux |
| dist: focal |
| language: cpp |
| compiler: gcc |
| env: |
| - PYTHON=python3 |
| - QPID_PROTON_CMAKE_ARGS='-DENABLE_BENCHMARKS=ON -DRUNTIME_CHECK=OFF -DTHREADERCISER=ON' |
| before_install: |
| - sudo apt-get install -y libbenchmark-dev |
| - name: gcc asan |
| os: linux |
| dist: focal |
| before_install: |
| - sudo apt-get install -y gcc-10 g++-10 |
| env: |
| - CC=gcc-10 |
| - CXX=g++-10 |
| - PYTHON=python3 |
| # python-tox-test fails and ruby tests segfault |
| - QPID_PROTON_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DENABLE_TOX_TEST=OFF -DTHREADERCISER=ON' |
| - QPID_PROTON_CTEST_ARGS='-E ^ruby.*' |
| - name: clang asan |
| os: linux |
| dist: focal |
| before_install: |
| - sudo apt-get install -y clang-11 llvm-11-dev |
| env: |
| - CC=clang-11 |
| - CXX=clang++-11 |
| - PYTHON=python3 |
| - QPID_PROTON_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DENABLE_TOX_TEST=OFF -DTHREADERCISER=ON' |
| # otherwise, on Travis ldd gives `libclang_rt.asan-x86_64.so => not found` and binaries don't work |
| - LD_LIBRARY_PATH=/usr/lib/llvm-11/lib/clang/11.0.0/lib/linux/ |
| - name: gcc tsan |
| os: linux |
| dist: focal |
| before_install: |
| - sudo apt-get install -y gcc-10 g++-10 |
| env: |
| - CC=gcc-10 |
| - CXX=g++-10 |
| - PYTHON=python3 |
| # python-test, python-integration-test, and python-tox-test segfault |
| - QPID_PROTON_CMAKE_ARGS='-DRUNTIME_CHECK=tsan -DENABLE_TOX_TEST=OFF -DTHREADERCISER=ON' |
| - QPID_PROTON_CTEST_ARGS="-E 'python-test|python-integration-test'" |
| - name: coverage |
| os: linux |
| dist: bionic |
| language: cpp |
| compiler: gcc |
| env: |
| - QPID_PROTON_CMAKE_ARGS='-DCMAKE_BUILD_TYPE=Coverage -DTHREADERCISER=ON' |
| after_success: |
| - bash <(curl -s https://codecov.io/bash) |
| |
| - os: osx |
| osx_image: xcode10.3 |
| language: cpp |
| compiler: clang |
| env: |
| - PATH="/usr/local/opt/python/libexec/bin:/usr/local/bin:$PATH" |
| - PKG_CONFIG_PATH='/usr/local/opt/openssl@1.1/lib/pkgconfig' |
| - QPID_PROTON_CMAKE_ARGS='-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DTHREADERCISER=ON' |
| # c-threaderciser test hangs on older clang |
| # python-tox-test segfaults and ruby tests do not start due to dynamic library issues |
| - QPID_PROTON_CTEST_ARGS="--exclude-regex 'c-threaderciser|python-tox-test|ruby.*'" |
| |
| - os: osx |
| osx_image: xcode12.2 |
| language: cpp |
| compiler: clang |
| env: |
| - PATH="/usr/local/opt/python/libexec/bin:/usr/local/bin:$PATH" |
| - PKG_CONFIG_PATH='/usr/local/opt/openssl@1.1/lib/pkgconfig' |
| - QPID_PROTON_CMAKE_ARGS='-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DTHREADERCISER=ON' |
| # TODO PROTON-2225: c-threaderciser sometimes fails with assertion error |
| # python-tox-test segfaults and ruby tests do not start due to dynamic library issues |
| - QPID_PROTON_CTEST_ARGS="--exclude-regex 'c-threaderciser|python-tox-test|ruby.*'" |
| |
| addons: |
| # Ubuntu APT dependencies, https://packages.ubuntu.com/ |
| apt: |
| packages: |
| - cmake |
| - libssl-dev |
| - libsasl2-dev |
| - sasl2-bin |
| - swig |
| - python-dev |
| - valgrind |
| - ruby |
| - ruby-dev |
| - python3-dev |
| - golang |
| - lcov |
| - libjsoncpp-dev |
| # macOS Homebrew dependencies, https://formulae.brew.sh/ |
| homebrew: |
| packages: |
| - jsoncpp |
| - libuv |
| - swig |
| # update:true workaround as of Feb. 22/20 as per |
| # https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296/10 |
| update: true |
| |
| install: |
| - echo "Using PYTHON=${PYTHON:=python}" |
| # use older version of virtualenv to workaround https://github.com/pypa/virtualenv/issues/1873 |
| - ${PYTHON} -m pip install --user --upgrade pip |
| - ${PYTHON} -m pip install --user coverage setuptools wheel tox virtualenv==20.0.23 |
| # PROTON-2125 suppress annoying deprecation warning from Minitest in Ruby tests |
| - gem install minitest:4.3.2 simplecov:0.18.0 codecov |
| |
| before_script: |
| - mkdir build |
| - cd build |
| - cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/install -DPython_EXECUTABLE="$(which ${PYTHON})" ${QPID_PROTON_CMAKE_ARGS} |
| |
| script: |
| # travis timeouts a job after 600 s elapses without any new output being printed; use 360 s here to preempt that |
| - cmake --build . --target install -- -j$(nproc) && eval ctest --timeout 360 -V ${QPID_PROTON_CTEST_ARGS} |