.travis.yml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. language: c
  2. compiler:
  3. - gcc
  4. - clang
  5. os:
  6. - linux
  7. # - osx
  8. # use new build environment (docker)
  9. sudo: false
  10. env:
  11. global:
  12. - secure: nSunY54Wp5HkQCHHbKwlwpbaKyqRVIu/0EnhaoJSwhM1wqerQV/E5d/2JelO9/tZgbungAO7wk/fjutRMVc7d378RTIPwS8vHpvZfEoGhCFsLoTOlqESzsZFBup2H5t1lpQ23jRHDOxlLdJy2lz5U+zd1YnYgDXqdDFjegsIYdo=
  13. - secure: ehswgymGXPM3UINhOOnfSByMnrRNTixeT2vEV+z3kXy3WHew/O1yt9GxaYGrUhJPg4+5chAQgjYmezO1x3/CUKFgeHQUmVTFWEzfy1kL1JVjO+ufYyJDnbY+x3OmyNmMYcef2J5MAuUS2C1KFvIxtLsljVK+gpe4LcylkCIF/3Y=
  14. matrix:
  15. # Do both, compile with static code analysis and without
  16. - ANALYZE=false
  17. - ANALYZE=true
  18. matrix:
  19. exclude:
  20. # This excludes OSX GCC builds.
  21. - os: osx
  22. compiler: gcc
  23. - os: osx
  24. env: ANALYZE=true
  25. allow_failures:
  26. - env: ANALYZE=true
  27. compiler: gcc
  28. addons:
  29. apt:
  30. sources:
  31. # see https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
  32. - kalakris-cmake
  33. - ubuntu-toolchain-r-test
  34. packages:
  35. - binutils-mingw-w64-i686
  36. - build-essential
  37. - clang
  38. - cmake
  39. - gcc-4.8
  40. - gcc-mingw-w64-i686
  41. - gcc-multilib
  42. - g++-4.8
  43. - libc6-dbg # for valgrind compilation
  44. - libsubunit-dev
  45. - libx11-dev
  46. - mingw-w64
  47. - python-lxml
  48. - wget
  49. - xutils-dev
  50. - zip
  51. # - libsubunit-dev #for check_0.10.0
  52. coverity_scan:
  53. project:
  54. name: acplt/open62541
  55. description: Open-source OPC UA
  56. notification_email: null@plt.rwth-aachen.de
  57. build_command_prepend: mkdir build && cd build && cmake ..
  58. build_command: make
  59. branch_pattern: coverity_scan
  60. cache:
  61. pip: true
  62. apt: true
  63. directories:
  64. - $HOME/install
  65. before_install:
  66. # set paths for locally installed libs (like liburcu)
  67. - export LOCAL_PKG=$HOME/install
  68. - mkdir -p $LOCAL_PKG/lib
  69. - mkdir -p $LOCAL_PKG/include
  70. - mkdir -p $LOCAL_PKG/bin
  71. - export LIBRARY_PATH=$LOCAL_PKG/lib:$LIBRARY_PATH
  72. - export C_INCLUDE_PATH=$LOCAL_PKG/include:$C_INCLUDE_PATH
  73. - export CPLUS_INCLUDE_PATH=$LOCAL_PKG/include:$CPLUS_INCLUDE_PATH
  74. - export PKG_CONFIG_PATH=$LOCAL_PKG/lib/pkgconfig:$PKG_CONFIG_PATH
  75. - export PATH=$LOCAL_PKG:$LOCAL_PKG/bin:$PATH
  76. # set local path for python packages
  77. - export PATH=$PATH:$HOME/.local/bin # linux
  78. - export PATH=$PATH:$HOME/Library/Python #OS X
  79. - export PATH=$PATH:$HOME/Library/Python/2.7/bin #OS X
  80. # set search path for check library
  81. - export CHECK_INCLUDE_DIRS=$LOCAL_PKG/include/
  82. - export CHECK_LIBRARIES=$LOCAL_PKG/lib/
  83. - if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_before_install.sh; fi
  84. - if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_before_install.sh; fi
  85. script:
  86. - if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_script.sh; fi
  87. - if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_script.sh; fi
  88. after_success:
  89. - if [[ ( ${TRAVIS_OS_NAME} == "linux" && ${CC} == "gcc" && ${TRAVIS_BRANCH} == "master" && ${TRAVIS_PULL_REQUEST} == "false" ) ]]; then sh ./tools/travis/travis_push_doc.sh; fi
  90. - if [[ ( ${TRAVIS_OS_NAME} == "linux" && ${CC} == "gcc" && ${TRAVIS_BRANCH} == "master" && ${TRAVIS_PULL_REQUEST} == "false" ) ]]; then sh ./tools/travis/travis_push_coverity.sh; fi
  91. - if [[ ( ${TRAVIS_OS_NAME} == "linux" && ${CC} == "gcc" ) ]]; then sh ./tools/travis/travis_push_release.sh; fi
  92. before_deploy:
  93. - rm build -rf && mkdir -p build && cd build
  94. - echo "Cross compile release build for Raspberry Pi"
  95. - cd ~
  96. - git clone https://github.com/raspberrypi/tools
  97. - cd -
  98. - export PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/
  99. - cmake -DCMAKE_TOOLCHAIN_FILE=../tools/cmake/Toolchain-rpi64.cmake -DENABLE_AMALGAMATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLESERVER=ON -DBUILD_EXAMPLECLIENT=ON ..
  100. - make
  101. - tar -pczf open62541-raspberrypi.tar.gz ../doc ../server_cert.der ../LICENSE ../AUTHORS ../README.md server_static server client_static client libopen62541.so open62541.h open62541.c
  102. - cp open62541-raspberrypi.tar.gz ..
  103. - cd ..
  104. deploy:
  105. provider: releases
  106. api_key:
  107. secure: PKCoA7MBRtHloIbNF4Qj5LQyCafjekfVeFXlMBd9KmC0ynNuef+D7nn38f/jo25/b0Ii7r+hgslkQPezbKyEqo2zcCB8Pn8TWau2hbzKM/dUCPoN90HVaQcRjUi8P2Y+QkouwyPWSujBL35/X5QiAntRotCSbZx4fkyiN8cU95o=
  108. file:
  109. - open62541-win32.zip
  110. - open62541-win64.zip
  111. - open62541-linux32.tar.gz
  112. - open62541-linux64.tar.gz
  113. - open62541-raspberrypi.tar.gz
  114. - open62541.c
  115. - open62541.h
  116. skip_cleanup: true
  117. on:
  118. repo: open62541/open62541
  119. tags: true
  120. condition: $CC = gcc