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
