You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

.travis.yml 3.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. language: cpp
  2. matrix:
  3. include:
  4. # gcc
  5. # xenial
  6. # gcc 5 is the default on xenial
  7. - os: linux
  8. dist: xenial
  9. compiler: gcc
  10. addons:
  11. apt:
  12. packages:
  13. - valgrind
  14. - cppcheck
  15. - doxygen
  16. - cmake
  17. env: CHECK="true"
  18. # bionic
  19. - os: linux
  20. dist: bionic
  21. compiler: gcc
  22. env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
  23. # gcc 7 is the default on bionic
  24. - os: linux
  25. dist: bionic
  26. compiler: gcc
  27. env: CHECK="true"
  28. - os: linux
  29. dist: bionic
  30. compiler: gcc
  31. env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
  32. # clang
  33. # xenial
  34. - os: linux
  35. dist: xenial
  36. compiler: clang
  37. addons:
  38. apt:
  39. sources:
  40. - llvm-toolchain-xenial-5.0
  41. packages:
  42. - clang-5.0
  43. - cmake
  44. env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
  45. - os: linux
  46. dist: xenial
  47. compiler: clang
  48. addons:
  49. apt:
  50. sources:
  51. - llvm-toolchain-xenial-6.0
  52. packages:
  53. - clang-6.0
  54. - cmake
  55. env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0"
  56. # clang-7 is the default on xenial and bionic
  57. - os: linux
  58. dist: xenial
  59. compiler: clang
  60. addons:
  61. apt:
  62. packages:
  63. - valgrind
  64. - cppcheck
  65. - doxygen
  66. - cmake
  67. env: CHECK="true"
  68. # bionic
  69. - os: linux
  70. dist: bionic
  71. compiler: clang
  72. env: CHECK="true"
  73. # osx
  74. - os: osx
  75. osx_image: xcode9.4
  76. env: XCODE="true"
  77. - os: osx
  78. osx_image: xcode10.1
  79. env: XCODE="true" CHECK="true"
  80. # run coveralls
  81. - os: linux
  82. dist: xenial
  83. compiler: gcc
  84. addons:
  85. apt:
  86. packages:
  87. - lcov
  88. env: CHECK="true"
  89. before_install:
  90. - sudo gem install coveralls-lcov
  91. - echo $CC
  92. - echo $LANG
  93. - echo $LC_ALL
  94. - set -e
  95. - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
  96. eval "${MATRIX_EVAL}";
  97. if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
  98. sudo apt-get install -y $CC;
  99. fi;
  100. fi
  101. before_script:
  102. - export CFLAGS="-fprofile-arcs -ftest-coverage"
  103. - mkdir build && cd build && cmake ..
  104. script:
  105. - make
  106. - make test
  107. after_success:
  108. - cd ..
  109. - lcov -d build/ -b . -c -o build/all_coverage.info
  110. - lcov -r build/all_coverage.info '/usr/*' '*CMakeFiles*' '*fuzz*' '*test*' -o build/coverage.info
  111. - coveralls-lcov --verbose build/coverage.info
  112. # allow_failures:
  113. # - os: osx
  114. before_install:
  115. - echo $CC
  116. - echo $LANG
  117. - echo $LC_ALL
  118. - set -e
  119. - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
  120. eval "${MATRIX_EVAL}";
  121. if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
  122. sudo apt-get install -y $CC;
  123. fi;
  124. fi
  125. before_script:
  126. # XXX osx on travis doesn't work w/ set -e, so turn it off :(
  127. - set +e
  128. - mkdir -p build || echo "Failed to mkdir build"
  129. - cd build || echo "Failed to cd build"
  130. - cmake .. || echo "Failed to run cmake"
  131. script:
  132. - make
  133. # when using bionic, Travis seems to ignore the "addons" section, so installing the packages with apt-get...
  134. - if [ -n "$CHECK" ]; then
  135. if [ "$TRAVIS_OS_NAME" = "osx" ]; then
  136. brew install doxygen;
  137. else
  138. if [ "$TRAVIS_DIST" = "bionic" ]; then
  139. sudo apt-get install -y valgrind cppcheck doxygen;
  140. fi;
  141. fi;
  142. make distcheck;
  143. if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi;
  144. fi