| language: c |
| sudo: required |
| |
| env: |
| global: |
| # GITAUTH: |
| - secure: nSunY54Wp5HkQCHHbKwlwpbaKyqRVIu/0EnhaoJSwhM1wqerQV/E5d/2JelO9/tZgbungAO7wk/fjutRMVc7d378RTIPwS8vHpvZfEoGhCFsLoTOlqESzsZFBup2H5t1lpQ23jRHDOxlLdJy2lz5U+zd1YnYgDXqdDFjegsIYdo= |
| - PYTHON=python2 |
| # For tag builds we do not have the base branch in TRAVIS_BRANCH, therefore store it in BRANCH_FOR_TAG |
| - BRANCH_FOR_TAG=$(git ls-remote origin | sed -n "\|$TRAVIS_COMMIT\s\+refs/heads/|{s///p}") |
| |
| |
| dist: trusty |
| |
| # Make sure we have the git tags. Travis uses shallow checkout where git describe does not work |
| git: |
| depth: false |
| |
| matrix: |
| fast_finish: true |
| include: |
| # |
| # gcc-4.8 (trusty) full host and cross build with tests: |
| # doc, cert, cross-mingw32, cross-mingw64, cross-linux32, cross-raspi, linux64, |
| # amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal, debian-package |
| - os: linux |
| compiler: gcc-4.8 |
| addons: |
| apt: |
| sources: |
| # see https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json |
| - ubuntu-toolchain-r-test |
| packages: |
| - mingw-w64 |
| - gcc-mingw-w64-i686 |
| - gcc-mingw-w64-x86-64 |
| - binutils-mingw-w64-i686 |
| - g++-multilib |
| # debian packaging |
| - cmake |
| - debhelper |
| - fakeroot |
| # doc |
| - python-sphinx |
| - graphviz |
| - texlive-generic-extra |
| - texlive-fonts-recommended |
| - texlive-latex-extra |
| - latexmk |
| # tests |
| - check |
| - libsubunit-dev |
| - valgrind |
| env: |
| - MINGW=true |
| - DEBIAN=true |
| # |
| # gcc-8 full host build with tests: |
| # doc, cert, linux64, |
| # amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal |
| - os: linux |
| compiler: gcc-8 |
| addons: |
| apt: |
| sources: |
| - ubuntu-toolchain-r-test |
| packages: |
| - gcc-8 |
| - gcc-8-multilib |
| # doc |
| - python-sphinx |
| - graphviz |
| - texlive-generic-extra |
| - texlive-fonts-recommended |
| - texlive-latex-extra |
| - latexmk |
| # tests |
| - check |
| - libsubunit-dev |
| - valgrind |
| # |
| # clang-6 full host build with tests: |
| # doc, cert, linux64, |
| # amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal |
| - os: linux |
| compiler: clang-6.0 |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-trusty-6.0 |
| - ubuntu-toolchain-r-test |
| packages: |
| - clang-6.0 |
| - clang-tidy-6.0 |
| # doc |
| - python-sphinx |
| - graphviz |
| - texlive-generic-extra |
| - texlive-fonts-recommended |
| - texlive-latex-extra |
| - latexmk |
| # tests |
| - check |
| - libsubunit-dev |
| - valgrind |
| # |
| # clang-6 python-3 full host build with tests: |
| # doc, cert, linux64, |
| # amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal |
| - os: linux |
| compiler: clang-6.0 |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-trusty-6.0 |
| - ubuntu-toolchain-r-test |
| packages: |
| - clang-6.0 |
| - clang-tidy-6.0 |
| # doc |
| - python3-sphinx |
| - graphviz |
| - texlive-generic-extra |
| - texlive-fonts-recommended |
| - texlive-latex-extra |
| - latexmk |
| # tests |
| - check |
| - libsubunit-dev |
| - valgrind |
| env: |
| - PYTHON=python3 |
| # |
| # tcc full host build: |
| # doc, cert, linux64, |
| # amalgamated, shared, multithread, encryption, discovery, json, test-ns0-full, test-ns0-minimal |
| - os: linux |
| compiler: tcc |
| addons: |
| apt: |
| packages: |
| # doc |
| - python-sphinx |
| - graphviz |
| - texlive-generic-extra |
| - texlive-fonts-recommended |
| - texlive-latex-extra |
| - latexmk |
| # tests |
| - check |
| - libsubunit-dev |
| - valgrind |
| # |
| # clang-6 python-3 install build and minimal example: |
| # linux64, minimal-example |
| - os: linux |
| compiler: clang-6.0 |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-trusty-6.0 |
| - ubuntu-toolchain-r-test |
| packages: |
| - clang-6.0 |
| - clang-tidy-6.0 |
| env: |
| - INSTALL=true |
| - PYTHON=python3 |
| - CXX=clang-6.0 |
| # |
| # gcc-4.8 static code analysis |
| - os: linux |
| compiler: gcc |
| addons: |
| apt: |
| packages: |
| - cppcheck |
| env: |
| - ANALYZE=true |
| # |
| # clang-6 static code analysis |
| - os: linux |
| compiler: clang-6.0 |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-trusty-6.0 |
| - ubuntu-toolchain-r-test |
| packages: |
| - check |
| - libsubunit-dev |
| - clang-6.0 |
| - clang-tidy-6.0 |
| env: |
| - ANALYZE=true |
| - PYTHON=python3 |
| # |
| # clang-format code analysis |
| # is allowed to fail (see allow_failures) |
| - os: linux |
| compiler: clang-6.0 |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-trusty-6.0 |
| - ubuntu-toolchain-r-test |
| packages: |
| - clang-6.0 |
| - clang-tidy-6.0 |
| - clang-format-6.0 |
| env: |
| - CLANG_FORMAT=true |
| # |
| # DOCKER build |
| - os: linux |
| compiler: gcc |
| env: |
| - DOCKER=true |
| # |
| # clang-6 FUZZER build |
| - os: linux |
| compiler: clang-6.0 |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-trusty-6.0 |
| - ubuntu-toolchain-r-test |
| packages: |
| - check |
| - libsubunit-dev |
| - clang-6.0 |
| - clang-tidy-6.0 |
| - libfuzzer-6.0-dev |
| env: |
| - FUZZER=true |
| # |
| # OSX clang build |
| - os: osx |
| compiler: clang |
| # disable homebrew auto update which takes a lot of time |
| env: HOMEBREW_NO_AUTO_UPDATE=1 |
| cache: |
| directories: |
| - $HOME/Library/Caches/Homebrew |
| # |
| # SONAR gcc-4.9 build |
| - os: linux |
| compiler: gcc-4.9 |
| addons: |
| sonarcloud: |
| organization: open62541 |
| branches: |
| - master |
| - sonarcloud |
| env: |
| - SONAR=true |
| cache: |
| directories: |
| - '$HOME/.sonar/cache' |
| allow_failures: |
| # |
| # clang-format code analysis |
| - env: |
| - CLANG_FORMAT=true |
| |
| cache: |
| pip: true |
| apt: true |
| directories: |
| - $HOME/install |
| - $HOME/.cache/pip |
| |
| # combine all the commands into one single command. See https://github.com/travis-ci/travis-ci/issues/1066 |
| before_install: | |
| set -eE |
| |
| errorTrap() { |
| last_rv=$? |
| |
| if [ $last_rv -ne 0 ] ; then |
| echo "" |
| echo "" |
| echo "----------------- Error -----------------" |
| echo "" |
| echo "---- Check additional output above!! ----" |
| # Wait a bit until the stdout is flushed |
| for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done |
| fi |
| |
| exit $last_rv |
| } |
| trap errorTrap 0 |
| |
| # 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 |
| export CMAKE_PREFIX_PATH=$LOCAL_PKG:CMAKE_PREFIX_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 |
| |
| 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: | |
| set -eE |
| |
| errorTrap() { |
| last_rv=$? |
| |
| if [ $last_rv -ne 0 ] ; then |
| echo "" |
| echo "" |
| echo "----------------- Error -----------------" |
| echo "" |
| echo "---- Check additional output above!! ----" |
| # Wait a bit until the stdout is flushed |
| for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done |
| fi |
| |
| exit $last_rv |
| } |
| trap errorTrap 0 |
| |
| 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: | |
| set -eE |
| |
| errorTrap() { |
| last_rv=$? |
| |
| if [ $last_rv -ne 0 ] ; then |
| echo "" |
| echo "" |
| echo "----------------- Error -----------------" |
| echo "" |
| echo "---- Check additional output above!! ----" |
| # Wait a bit until the stdout is flushed |
| for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done |
| fi |
| |
| exit $last_rv |
| } |
| trap errorTrap 0 |
| |
| if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_after_success.sh; fi |
| # Sleep to flush travis output |
| echo == Build success == |
| sleep 5 |
| |
| after_failure: | |
| # Sleep to flush travis output |
| echo == Build failed == |
| sleep 5 |
| |
| deploy: |
| provider: releases |
| api_key: |
| # Uses token from user open62541-travis-release (managed by @Pro). Sets GITAUTH |
| secure: dtn6ayBGoWzeVMM6xYpSRZly1XOhS/2jdiwEHd0hYZIr0dNq18CxTiqbGrUwW1JsSiXoHaGSZhUVr06O1P/tfC3Ma6i7ugyun+yXz6FdZiwirjURI8HQe+XwR4Ui3hqgQSOHLMK/xtOkjM28AN1jg9u3//Zep69xJVIGAqNT0bE= |
| file: |
| - open62541-win32.zip |
| - open62541-win64.zip |
| - open62541-linux32.tar.gz |
| - open62541-linux64.tar.gz |
| - open62541-raspberrypi.tar.gz |
| - open62541.c |
| - open62541.h |
| - open62541*.deb |
| file_glob: true |
| skip_cleanup: true |
| on: |
| repo: open62541/open62541 |
| tags: true |
| condition: $MINGW=true |