| # |
| # 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 |
| # |
| |
| language: c |
| cache: ccache |
| jobs: |
| include: |
| - name: "qdrouterd:RelWithDebInfo+MemoryDebug (clang on focal)" |
| arch: arm64 |
| os: linux |
| dist: focal |
| compiler: clang |
| python: |
| - "3.9" |
| before_install: |
| - sudo aptitude install -y clang-11 llvm-11-dev |
| # Install and use the latest Node.js LTS version |
| - nvm install "lts/*" |
| # https://github.com/pypa/virtualenv/issues/1740 |
| # https://github.com/pypa/virtualenv/issues/1873 |
| - python3 -m pip install --user --upgrade pip |
| - python3 -m pip install --user --upgrade tox virtualenv==20.0.23 |
| # Install quart to run the http2 tests. |
| - python3 -m pip install --user quart |
| # DISPATCH-1883: Install selectors to run tcp echo server/client tools |
| - python3 -m pip install --user selectors |
| # Install grpcio and protobuf to run the grpc tests. |
| - python3 -m pip install --user grpcio protobuf |
| env: |
| - QPID_SYSTEM_TEST_TIMEOUT=300 |
| - CC=clang-11 |
| - CXX=clang++-11 |
| - PROTON_VERSION=main BUILD_TYPE=RelWithDebInfo |
| - DISPATCH_CMAKE_ARGS='-DRUNTIME_CHECK=asan -DCMAKE_C_FLAGS=-DQD_MEMORY_DEBUG -DQD_ENABLE_ASSERTIONS=ON -DDISPATCH_TEST_TIMEOUT=500' |
| |
| addons: |
| apt: |
| packages: |
| # Proton requirements |
| - cmake |
| - libsasl2-dev |
| - libssl-dev |
| - python2.7 |
| - python2.7-dev |
| - sasl2-bin |
| - swig |
| - libnghttp2-dev |
| # unit test requirement |
| - tox |
| # code coverage |
| - lcov |
| |
| before_install: |
| # Install and use the latest Node.js LTS version |
| - nvm install "lts/*" |
| |
| install: |
| - NPROC=2 |
| - PREFIX=$PWD/install |
| - git clone --depth=10 --branch=$PROTON_VERSION https://github.com/apache/qpid-proton.git |
| - cmake -version |
| |
| # Build and install proton from source. |
| - mkdir qpid-proton/build |
| - pushd qpid-proton/build |
| - cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DBUILD_BINDINGS=python |
| - 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} |
| - . config.sh |
| - make -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 --timeout 1200 -V ${DISPATCH_CTEST_EXTRA} && 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 |