.travis.yml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. # using c for language overwrites our compilers
  2. language: generic
  3. sudo: required
  4. env:
  5. global:
  6. # GITAUTH:
  7. - secure: nSunY54Wp5HkQCHHbKwlwpbaKyqRVIu/0EnhaoJSwhM1wqerQV/E5d/2JelO9/tZgbungAO7wk/fjutRMVc7d378RTIPwS8vHpvZfEoGhCFsLoTOlqESzsZFBup2H5t1lpQ23jRHDOxlLdJy2lz5U+zd1YnYgDXqdDFjegsIYdo=
  8. dist: trusty
  9. matrix:
  10. fast_finish: true
  11. include:
  12. #
  13. - os: linux
  14. addons:
  15. apt:
  16. sources:
  17. # see https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
  18. - ubuntu-toolchain-r-test
  19. packages:
  20. - binutils-mingw-w64-i686
  21. - build-essential
  22. - check
  23. - cmake
  24. - debhelper
  25. - fakeroot
  26. - gcc-multilib
  27. - g++-mingw-w64-i686
  28. - g++-mingw-w64-x86-64
  29. - g++-multilib
  30. - graphviz
  31. - libsubunit-dev
  32. - libx11-dev
  33. - mingw-w64
  34. - python-six
  35. - python3-six
  36. - texlive-fonts-recommended
  37. - texlive-latex-extra
  38. - texlive-latex-recommended
  39. - valgrind
  40. - wget
  41. - xutils-dev
  42. - zip
  43. env:
  44. - CC=gcc-4.8
  45. - CXX=g++-4.8
  46. - PYTHON=python2
  47. - MINGW=true
  48. - DEBIAN=true
  49. - os: linux
  50. addons:
  51. apt:
  52. sources:
  53. - ubuntu-toolchain-r-test
  54. packages:
  55. - check
  56. - debhelper
  57. - fakeroot
  58. - gcc-8
  59. - gcc-8-multilib
  60. - g++-8
  61. - g++-8-multilib
  62. - graphviz
  63. - linux-libc-dev:i386
  64. - python-six
  65. - python3-six
  66. - texlive-fonts-recommended
  67. - texlive-latex-extra
  68. - texlive-latex-recommended
  69. - valgrind
  70. env:
  71. - CC=gcc-8
  72. - CXX=g++-8
  73. - PYTHON=python2
  74. - os: linux
  75. addons:
  76. apt:
  77. sources:
  78. - llvm-toolchain-trusty-6.0
  79. - ubuntu-toolchain-r-test
  80. packages:
  81. - check
  82. - clang-6.0
  83. - clang-tidy-6.0
  84. - debhelper
  85. - fakeroot
  86. - graphviz
  87. - python-six
  88. - texlive-fonts-recommended
  89. - texlive-latex-extra
  90. - texlive-latex-recommended
  91. - valgrind
  92. env:
  93. - CC=clang-6.0
  94. - CXX=clang++-6.0
  95. - PYTHON=python2
  96. - os: linux
  97. addons:
  98. apt:
  99. sources:
  100. - llvm-toolchain-trusty-6.0
  101. - ubuntu-toolchain-r-test
  102. packages:
  103. - check
  104. - clang-6.0
  105. - clang-tidy-6.0
  106. - debhelper
  107. - fakeroot
  108. - graphviz
  109. - python3-six
  110. - texlive-fonts-recommended
  111. - texlive-latex-extra
  112. - texlive-latex-recommended
  113. - valgrind
  114. env:
  115. - CC=clang-6.0
  116. - CXX=clang++-6.0
  117. - PYTHON=python3
  118. - os: linux
  119. addons:
  120. apt:
  121. packages:
  122. - check
  123. - graphviz
  124. - debhelper
  125. - fakeroot
  126. - python-six
  127. - python3-six
  128. - texlive-fonts-recommended
  129. - texlive-latex-extra
  130. - texlive-latex-recommended
  131. env:
  132. - CC=tcc
  133. - PYTHON=python2
  134. - os: linux
  135. addons:
  136. apt:
  137. sources:
  138. - llvm-toolchain-trusty-6.0
  139. - ubuntu-toolchain-r-test
  140. packages:
  141. - clang-6.0
  142. - clang-tidy-6.0
  143. - python3-six
  144. - valgrind
  145. env:
  146. - INSTALL=true
  147. - CC=clang-6.0
  148. - CXX=clang++-6.0
  149. - PYTHON=python3
  150. - os: linux
  151. addons:
  152. apt:
  153. packages:
  154. - cppcheck
  155. env:
  156. - ANALYZE=true
  157. - CC=gcc-4.8
  158. - CXX=g++-4.8
  159. - os: linux
  160. addons:
  161. apt:
  162. sources:
  163. - llvm-toolchain-trusty-6.0
  164. - ubuntu-toolchain-r-test
  165. packages:
  166. - check
  167. - clang-6.0
  168. - clang-tidy-6.0
  169. - graphviz
  170. - python-six
  171. - python3-six
  172. - texlive-fonts-recommended
  173. - texlive-latex-extra
  174. - texlive-latex-recommended
  175. env:
  176. - ANALYZE=true
  177. - PYTHON=python3
  178. - CC=clang-6.0
  179. - CXX=clang++-6.0
  180. #- os: linux
  181. # compiler: gcc
  182. # env: LINT=true
  183. - os: linux
  184. env:
  185. - DOCKER=true
  186. - os: linux
  187. addons:
  188. apt:
  189. sources:
  190. - llvm-toolchain-trusty-6.0
  191. - ubuntu-toolchain-r-test
  192. packages:
  193. - check
  194. - clang-6.0
  195. - clang-tidy-6.0
  196. - libfuzzer-6.0-dev
  197. - python-six
  198. - python3-six
  199. env:
  200. - FUZZER=true
  201. - os: osx
  202. compiler: clang
  203. # disable homebrew auto update which takes a lot of time
  204. env: HOMEBREW_NO_AUTO_UPDATE=1
  205. cache:
  206. directories:
  207. - $HOME/Library/Caches/Homebrew
  208. - os: linux
  209. addons:
  210. sonarcloud:
  211. organization: open62541
  212. branches:
  213. - master
  214. - sonarcloud
  215. env:
  216. - CC=gcc-4.9
  217. - CXX=g++-4.9
  218. - SONAR=true
  219. - PYTHON=python2
  220. cache:
  221. directories:
  222. - '$HOME/.sonar/cache'
  223. cache:
  224. pip: true
  225. apt: true
  226. directories:
  227. - $HOME/install
  228. - $HOME/.cache/pip
  229. # combine all the commands into one single command. See https://github.com/travis-ci/travis-ci/issues/1066
  230. before_install: |
  231. set -eE
  232. errorTrap() {
  233. last_rv=$?
  234. if [ $last_rv -ne 0 ] ; then
  235. echo ""
  236. echo ""
  237. echo "----------------- Error -----------------"
  238. echo ""
  239. echo "---- Check additional output above!! ----"
  240. # Wait a bit until the stdout is flushed
  241. for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done
  242. fi
  243. exit $last_rv
  244. }
  245. trap errorTrap 0
  246. # set paths for locally installed libs (like liburcu)
  247. export LOCAL_PKG=$HOME/install
  248. mkdir -p $LOCAL_PKG/lib
  249. mkdir -p $LOCAL_PKG/include
  250. mkdir -p $LOCAL_PKG/bin
  251. export LIBRARY_PATH=$LOCAL_PKG/lib:$LIBRARY_PATH
  252. export C_INCLUDE_PATH=$LOCAL_PKG/include:$C_INCLUDE_PATH
  253. export CPLUS_INCLUDE_PATH=$LOCAL_PKG/include:$CPLUS_INCLUDE_PATH
  254. export PKG_CONFIG_PATH=$LOCAL_PKG/lib/pkgconfig:$PKG_CONFIG_PATH
  255. export PATH=$LOCAL_PKG:$LOCAL_PKG/bin:$PATH
  256. export CMAKE_PREFIX_PATH=$LOCAL_PKG:CMAKE_PREFIX_PATH
  257. # set local path for python packages
  258. export PATH=$PATH:$HOME/.local/bin # linux
  259. export PATH=$PATH:$HOME/Library/Python #OS X
  260. export PATH=$PATH:$HOME/Library/Python/2.7/bin #OS X
  261. if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_before_install.sh; fi
  262. if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_before_install.sh; fi
  263. script: |
  264. set -eE
  265. errorTrap() {
  266. last_rv=$?
  267. if [ $last_rv -ne 0 ] ; then
  268. echo ""
  269. echo ""
  270. echo "----------------- Error -----------------"
  271. echo ""
  272. echo "---- Check additional output above!! ----"
  273. # Wait a bit until the stdout is flushed
  274. for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done
  275. fi
  276. exit $last_rv
  277. }
  278. trap errorTrap 0
  279. if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_script.sh; fi
  280. if [ ${TRAVIS_OS_NAME} == "osx" ]; then sh ./tools/travis/travis_osx_script.sh; fi
  281. after_success: |
  282. set -eE
  283. errorTrap() {
  284. last_rv=$?
  285. if [ $last_rv -ne 0 ] ; then
  286. echo ""
  287. echo ""
  288. echo "----------------- Error -----------------"
  289. echo ""
  290. echo "---- Check additional output above!! ----"
  291. # Wait a bit until the stdout is flushed
  292. for i in 1 2 3 4 5 6 7 8 9 10; do echo "."; sleep 1; done
  293. fi
  294. exit $last_rv
  295. }
  296. trap errorTrap 0
  297. if [ ${TRAVIS_OS_NAME} == "linux" ]; then sh ./tools/travis/travis_linux_after_success.sh; fi
  298. # Sleep to flush travis output
  299. echo == Build success ==
  300. sleep 5
  301. after_failure: |
  302. # Sleep to flush travis output
  303. echo == Build failed ==
  304. sleep 5
  305. deploy:
  306. provider: releases
  307. api_key:
  308. secure: PKCoA7MBRtHloIbNF4Qj5LQyCafjekfVeFXlMBd9KmC0ynNuef+D7nn38f/jo25/b0Ii7r+hgslkQPezbKyEqo2zcCB8Pn8TWau2hbzKM/dUCPoN90HVaQcRjUi8P2Y+QkouwyPWSujBL35/X5QiAntRotCSbZx4fkyiN8cU95o=
  309. file:
  310. - open62541-win32.zip
  311. - open62541-win64.zip
  312. - open62541-linux32.tar.gz
  313. - open62541-linux64.tar.gz
  314. - open62541-raspberrypi.tar.gz
  315. - open62541.c
  316. - open62541.h
  317. - open62541*.deb
  318. file_glob: true
  319. skip_cleanup: true
  320. on:
  321. repo: open62541/open62541
  322. tags: true
  323. condition: $CC = gcc-4.8 && $ANALYZE = false