| # |
| # 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: true |
| language: c |
| cache: ccache |
| matrix: |
| fast_finish: true |
| allow_failures: |
| - os: osx |
| include: |
| - name: "apache-rat:check" |
| os: linux |
| sudo: false |
| env: [] |
| language: java |
| addons: |
| apt: |
| packages: [] |
| install: [] |
| before_script: [] |
| script: |
| - mvn apache-rat:check |
| before_cache: |
| - rm -rf $HOME/.m2/repository/org/apache/qpid/* |
| cache: |
| directories: |
| - $HOME/.m2/repository |
| after_script: |
| - cat target/rat.txt || true |
| # prepending /usr/bin to PATH to avoid mismatched python interpreters in /opt |
| - os: linux |
| env: |
| - PATH="/usr/bin:$PATH" PROTON_VERSION=master BUILD_TYPE=Debug |
| - os: linux |
| env: |
| - PATH="/usr/bin:$PATH" PROTON_VERSION=0.30.0 BUILD_TYPE=Coverage |
| - os: linux |
| env: |
| - PATH="/usr/bin:$PATH" PROTON_VERSION=0.30.0 BUILD_TYPE=RelWithDebInfo |
| - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan' |
| - os: osx |
| osx_image: xcode11 |
| env: |
| - PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:$PATH" PROTON_VERSION=master |
| before_install: |
| - bash ./macports.sh |
| - export COLUMNS=80 |
| - yes | sudo port install cmake swig swig-python libuv jsoncpp libwebsockets cyrus-sasl2 pkgconfig python37 py37-pip |
| # set aliases for CMake's PythonInterp and PythonLibs to find MacPort's `python` on the path first |
| - sudo port select --set python python37 |
| - sudo port select --set python3 python37 |
| - python -m venv p3venv |
| - source p3venv/bin/activate |
| |
| addons: |
| apt: |
| packages: |
| # Proton requirements |
| - cmake |
| - libsasl2-dev |
| - libssl-dev |
| - python2.7 |
| - python2.7-dev |
| - sasl2-bin |
| - swig |
| # documentation |
| - asciidoc |
| - asciidoctor |
| - dblatex |
| # unit test requirement |
| - python-unittest2 |
| - tox |
| # code coverage |
| - lcov |
| |
| install: |
| - NPROC=2 |
| - PREFIX=$PWD/install |
| - git clone --depth=10 --branch=$PROTON_VERSION https://github.com/apache/qpid-proton.git |
| |
| # Build and install proton from source. |
| - mkdir qpid-proton/build |
| - pushd qpid-proton/build |
| - cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DBUILD_PYTHON=YES -DBUILD_JAVASCRIPT=NO -DBUILD_CPP=NO -DBUILD_GO=NO -DBUILD_RUBY=NO -DBUILD_PHP=NO -DBUILD_PERL=NO |
| - cmake --build . --target install -- -j $NPROC |
| - popd |
| |
| before_script: |
| - source qpid-proton/build/config.sh |
| - mkdir build |
| - pushd build |
| - cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${DISPATCH_CMAKE_ARGS} |
| - cmake --build . --target install -- -j $NPROC |
| |
| script: |
| - pushd ../qpid-proton |
| - echo $(echo "Current proton commit:") $(git rev-parse HEAD) "(${PROTON_VERSION})" |
| - popd |
| # Workaround on macOS for PROTON-808 Binaries have their library locations stripped |
| - if [[ "${OSTYPE}" == "darwin"* ]]; then install_name_tool -add_rpath $PREFIX/lib/. $PREFIX/lib/proton/bindings/python/_cproton.so; fi |
| - ctest -V && if [ "$BUILD_TYPE" = "Coverage" ]; then cmake --build . --target coverage; fi |
| |
| after_success: |
| - cd ${TRAVIS_BUILD_DIR}/build |
| - if [ "$BUILD_TYPE" = "Coverage" ]; then bash <(curl -s https://codecov.io/bash); fi |