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.5 kB

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