123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- 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
|