language: c compiler: - gcc - clang os: - linux # - osx # use new build environment (docker) sudo: false env: global: - secure: nSunY54Wp5HkQCHHbKwlwpbaKyqRVIu/0EnhaoJSwhM1wqerQV/E5d/2JelO9/tZgbungAO7wk/fjutRMVc7d378RTIPwS8vHpvZfEoGhCFsLoTOlqESzsZFBup2H5t1lpQ23jRHDOxlLdJy2lz5U+zd1YnYgDXqdDFjegsIYdo= - secure: ehswgymGXPM3UINhOOnfSByMnrRNTixeT2vEV+z3kXy3WHew/O1yt9GxaYGrUhJPg4+5chAQgjYmezO1x3/CUKFgeHQUmVTFWEzfy1kL1JVjO+ufYyJDnbY+x3OmyNmMYcef2J5MAuUS2C1KFvIxtLsljVK+gpe4LcylkCIF/3Y= matrix: # Do both, compile with static code analysis and without - ANALYZE=false - ANALYZE=true matrix: exclude: # This excludes OSX GCC builds. - os: osx compiler: gcc - os: osx env: ANALYZE=true addons: apt: sources: # see https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json - kalakris-cmake - ubuntu-toolchain-r-test packages: - binutils-mingw-w64-i686 - build-essential - clang - cmake - gcc-4.8 - gcc-mingw-w64-i686 - gcc-multilib - g++-4.8 - libc6-dbg # for valgrind compilation - libsubunit-dev - libx11-dev - mingw-w64 - wget - xutils-dev - zip - graphviz - texlive-latex-recommended - texlive-latex-extra - texlive-fonts-recommended # - libsubunit-dev #for check_0.10.0 coverity_scan: project: name: acplt/open62541 description: Open-source OPC UA notification_email: null@plt.rwth-aachen.de build_command_prepend: mkdir build && cd build && cmake .. build_command: make branch_pattern: coverity_scan cache: pip: true apt: true directories: - $HOME/install before_install: # set paths for locally installed libs (like liburcu) - export LOCAL_PKG=$HOME/install - mkdir -p $LOCAL_PKG/lib - mkdir -p $LOCAL_PKG/include - mkdir -p $LOCAL_PKG/bin - export LIBRARY_PATH=$LOCAL_PKG/lib:$LIBRARY_PATH - export C_INCLUDE_PATH=$LOCAL_PKG/include:$C_INCLUDE_PATH - export CPLUS_INCLUDE_PATH=$LOCAL_PKG/include:$CPLUS_INCLUDE_PATH - export PKG_CONFIG_PATH=$LOCAL_PKG/lib/pkgconfig:$PKG_CONFIG_PATH - export PATH=$LOCAL_PKG:$LOCAL_PKG/bin:$PATH # set local path for python packages - export PATH=$PATH:$HOME/.local/bin # linux - export PATH=$PATH:$HOME/Library/Python #OS X - export PATH=$PATH:$HOME/Library/Python/2.7/bin #OS X # set search path for check library - export CHECK_INCLUDE_DIRS=$LOCAL_PKG/include/ - export CHECK_LIBRARIES=$LOCAL_PKG/lib/ - sh ./tools/travis/travis_notifications.sh - if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_before_install.sh; fi - if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_before_install.sh; fi script: - if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_script.sh; fi - if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_script.sh; fi after_success: - if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_after_success.sh; fi before_deploy: - rm build -rf && mkdir -p build && cd build - echo "Cross compile release build for Raspberry Pi" - cd ~ - git clone https://github.com/raspberrypi/tools - cd - - export PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/ - cmake -DCMAKE_TOOLCHAIN_FILE=../tools/cmake/Toolchain-rpi64.cmake -DUA_ENABLE_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=Release -DUA_BUILD_EXAMPLES=ON .. - make - tar -pczf open62541-raspberrypi.tar.gz ../doc ../../server_cert.der ../LICENSE ../AUTHORS ../README.md examples/server examples/client libopen62541.a open62541.h open62541.c - cp open62541-raspberrypi.tar.gz .. - cd .. deploy: provider: releases api_key: secure: PKCoA7MBRtHloIbNF4Qj5LQyCafjekfVeFXlMBd9KmC0ynNuef+D7nn38f/jo25/b0Ii7r+hgslkQPezbKyEqo2zcCB8Pn8TWau2hbzKM/dUCPoN90HVaQcRjUi8P2Y+QkouwyPWSujBL35/X5QiAntRotCSbZx4fkyiN8cU95o= file: - open62541-win32.zip - open62541-win64.zip - open62541-linux32.tar.gz - open62541-linux64.tar.gz - open62541-raspberrypi.tar.gz - open62541.c - open62541.h skip_cleanup: true on: repo: open62541/open62541 tags: true condition: $CC = gcc && $ANALYZE = false notifications: irc: channels: - "chat.freenode.net#open62541" on_success: ${IRC_NOTIFY_SUCCESS} # default: change, variable defined in ./tools/travis/travis_notification.sh on_failure: ${IRC_NOTIFY_FAILURE} # default: always, variable defined in ./tools/travis/travis_notification.sh use_notice: true skip_join: true