| |
| sudo: required |
| dist: trusty |
| |
| language: c |
| |
| os: |
| - linux |
| - osx |
| |
| compiler: |
| - gcc |
| - clang |
| |
| services: |
| - docker |
| |
| |
| env: |
| global: |
| - COVERITY_SCAN_BUILD_COMMAND="make" |
| - COVERITY_SCAN_PROJECT_NAME="Apache Celix" |
| - COVERITY_SCAN_NOTIFICATION_EMAIL="bpetri@apache.org" |
| - COVERITY_SCAN_BRANCH_PATTERN="feature/event_admin" |
| - COVERITY_SCAN_TOKEN="iomLSuaE8KOZLDog-KK7Ug" |
| - COVERITY_SCAN_BUILD_URL="https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" |
| - COVERITY_SCAN_BUILD="curl -s $COVERITY_SCAN_BUILD_URL | sed 's/https:\/\/scan.coverity.com\/builds/https:\/\/scan.coverity.com\/builds?project=Apache+Celix/g' | bash" |
| - COVERITY_SCAN_ALWAYS_ON="n" |
| |
| matrix: |
| include: |
| - os: linux |
| compiler: gcc |
| env: SANITIZE=1 |
| - os: linux |
| compiler: clang |
| env: ANDROID=1 |
| |
| |
| before_install: |
| - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ -z "$ANDROID" ]; then sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && sudo apt-get -qq update && sudo apt-get install -y uuid-dev libxml2-dev lcov libffi-dev gcc-4.8 g++-4.8; fi |
| - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew uninstall cmake; fi |
| - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install lcov libffi cmake && brew link --force libffi; fi |
| |
| before_script: |
| - wget https://github.com/cpputest/cpputest.github.io/blob/master/releases/cpputest-3.7.1.tar.gz?raw=true -O /tmp/cpputest.tar.gz |
| - tar -xzvf /tmp/cpputest.tar.gz -C /tmp |
| - if [ "$CC" = "clang" ]; then export CXX="clang++"; fi && cd /tmp/cpputest-3.7.1 && ./configure --prefix=/usr && make && sudo make install && cd - |
| - cd /tmp/cpputest-3.7.1 && ./configure --prefix=/usr && make && sudo make install && cd - |
| - git clone https://github.com/akheron/jansson.git jansson-build |
| - cd jansson-build && git checkout 2.7 |
| - cmake -DJANSSON_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr . && make |
| - sudo make install |
| - cd - |
| - mkdir build install |
| - export BUILD_OPTIONS=" \ |
| -DBUILD_CONFIG_ADMIN=OFF \ |
| -DBUILD_RSA_REMOTE_SERVICE_ADMIN_DFI=ON \ |
| -DBUILD_DEPLOYMENT_ADMIN=ON \ |
| -DBUILD_DEPENDENCY_MANAGER=ON \ |
| -DBUILD_EXAMPLES=ON -DBUILD_LOG_SERVICE=ON \ |
| -DBUILD_LOG_WRITER=ON \ |
| -DBUILD_REMOTE_SERVICE_ADMIN=ON \ |
| -DBUILD_RSA_DISCOVERY_CONFIGURED=ON \ |
| -DBUILD_RSA_DISCOVERY_ETCD=ON \ |
| -DBUILD_RSA_EXAMPLES=ON \ |
| -DBUILD_RSA_REMOTE_SERVICE_ADMIN_HTTP=ON \ |
| -DBUILD_REMOTE_SHELL=ON \ |
| -DBUILD_SHELL=ON \ |
| -DBUILD_SHELL_TUI=ON -DBUILD_DEVICE_ACCESS=ON \ |
| -DBUILD_DEVICE_ACCESS_EXAMPLE=ON " |
| - export BUILD_OPTIONS_LINUX=" \ |
| -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=ON \ |
| -DBUILD_RSA_DISCOVERY_SHM=ON " |
| - export BUILD_OPTIONS_OSX=" \ |
| -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=OFF \ |
| -DBUILD_RSA_DISCOVERY_SHM=OFF " |
| - export BUILD_OPTIONS_SANITIZE=" -DENABLE_ADDRESS_SANITIZER=ON" |
| |
| script: |
| #- if [ "$SANITIZE" == 1 ]; then export CC=/usr/bin/gcc-4.8 CXX=/usr/bin/g++-4.8 CFLAGS="-lasan -fsanitize=address" CXXFLAGS="-lasan -fsanitize=address" ASAN_OPTIONS="symbolize=1" ASAN_SYMBOLIZER_PATH="/usr/local/clang-3.4/bin/llvm-symbolizer"; fi |
| - if [ "$SANITIZE" == 1 ]; then export BUILD_OPTIONS="${BUILD_OPTIONS} ${BUILD_OPTIONS_SANITIZE}"; fi |
| # the following setup is broken: |
| # RSA_DISCOVERY_SHM is only working on linux, but both compilers (see CELIX-277) |
| # RSA_SHM is only working on linux, but both compilers (see CELIX-277) |
| - cd build |
| - if [ "$CC" = "gcc" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export BUILD_OPTS="${BUILD_OPTS} -DENABLE_CODE_COVERAGE=ON"; fi |
| - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ -z "$ANDROID" ]; then cmake ${BUILD_OPTIONS} ${BUILD_OPTIONS_LINUX} -DBUILD_FRAMEWORK_TESTS=ON -DBUILD_UTILS-TESTS=ON -DENABLE_TESTING=ON ${BUILD_OPTS} -DCMAKE_INSTALL_PREFIX=../install ..; fi |
| - if [ "$TRAVIS_OS_NAME" = "osx" ]; then cmake ${BUILD_OPTIONS} ${BUILD_OPTIONS_OSX} -DBUILD_FRAMEWORK_TESTS=ON -DBUILD_UTILS-TESTS=ON -DENABLE_TESTING=ON -DFFI_LIBRARY=/usr/local/opt/libffi/lib/libffi.dylib ${BUILD_OPTS} -DCMAKE_INSTALL_PREFIX=../install ..; fi |
| - if [ -z "$ANDROID" ]; then make all && make deploy && make install; else cd .. && docker build -t celixandroid - < Dockerfile.Android ; fi |
| - if [ -z "$ANDROID" ]; then export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH:`pwd`/utils:`pwd`/framework:`pwd`/dfi && make test ARGS="-V"; else docker run celixandroid; fi |
| |
| after_success: |
| - if [ "$CC" = "gcc" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then |
| cd ${TRAVIS_BUILD_DIR}/build; |
| gem install coveralls-lcov && |
| make coverage && |
| lcx="lcov --output-file=coverage.info " && for i in `find . -name "*.info.cleaned"`; do lcx+=" --add-tracefile=$i"; done && $lcx && coveralls-lcov --repo-token=9dpeTAjiGoQU5hgXFe0ezk65iu40oc3WY coverage.info; |
| if [ $(( $TRAVIS_BUILD_NUMBER % 5 )) -eq 0 -o ${COVERITY_SCAN_ALWAYS_ON} = "y" ]; then make clean & eval "$COVERITY_SCAN_BUILD"; fi |
| fi; |
| |