.travis.yml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. language: c
  2. sudo: false
  3. compiler:
  4. - gcc
  5. - clang
  6. os:
  7. - linux
  8. - osx
  9. env:
  10. global:
  11. - BUILD_TYPE=Coverage
  12. - ENABLE_SSL_DYNAMIC_LOADING=YES
  13. - ENABLE_CXX=NO
  14. - ENABLE_LUA=NO
  15. - ENABLE_LUA_SHARED=NO
  16. - C_STANDARD=auto
  17. - CXX_STANDARD=auto
  18. matrix:
  19. # Start with a minimal build
  20. - BUILD_SHARED=NO
  21. NO_FILES=YES
  22. ENABLE_SSL=NO
  23. NO_CGI=YES
  24. ENABLE_IPV6=NO
  25. ENABLE_WEBSOCKETS=NO
  26. - BUILD_SHARED=YES
  27. NO_FILES=YES
  28. ENABLE_SSL=NO
  29. NO_CGI=YES
  30. ENABLE_IPV6=NO
  31. ENABLE_WEBSOCKETS=NO
  32. # Run the default build (no "NO_*" options, no "USE_*"/"WITH_*" options)
  33. - BUILD_SHARED=NO
  34. NO_FILES=NO
  35. ENABLE_SSL=YES
  36. NO_CGI=NO
  37. ENABLE_IPV6=NO
  38. ENABLE_WEBSOCKETS=NO
  39. - BUILD_SHARED=YES
  40. NO_FILES=NO
  41. ENABLE_SSL=YES
  42. NO_CGI=NO
  43. ENABLE_IPV6=NO
  44. ENABLE_WEBSOCKETS=NO
  45. # Full featured build
  46. - BUILD_SHARED=NO
  47. NO_FILES=NO
  48. ENABLE_SSL=YES
  49. NO_CGI=NO
  50. ENABLE_IPV6=YES
  51. ENABLE_WEBSOCKETS=YES
  52. - BUILD_SHARED=YES
  53. NO_FILES=NO
  54. ENABLE_SSL=YES
  55. NO_CGI=NO
  56. ENABLE_IPV6=YES
  57. ENABLE_WEBSOCKETS=YES
  58. # One selected feature (files)
  59. - BUILD_SHARED=NO
  60. NO_FILES=NO
  61. ENABLE_SSL=NO
  62. NO_CGI=YES
  63. ENABLE_IPV6=NO
  64. ENABLE_WEBSOCKETS=NO
  65. - BUILD_SHARED=YES
  66. NO_FILES=NO
  67. ENABLE_SSL=NO
  68. NO_CGI=YES
  69. ENABLE_IPV6=NO
  70. ENABLE_WEBSOCKETS=NO
  71. # One selected feature (SSL)
  72. - BUILD_SHARED=NO
  73. NO_FILES=YES
  74. ENABLE_SSL=YES
  75. NO_CGI=YES
  76. ENABLE_IPV6=NO
  77. ENABLE_WEBSOCKETS=NO
  78. - BUILD_SHARED=YES
  79. NO_FILES=YES
  80. ENABLE_SSL=YES
  81. NO_CGI=YES
  82. ENABLE_IPV6=NO
  83. ENABLE_WEBSOCKETS=NO
  84. # One selected feature (CGI)
  85. - BUILD_SHARED=NO
  86. NO_FILES=YES
  87. ENABLE_SSL=NO
  88. NO_CGI=NO
  89. ENABLE_IPV6=NO
  90. ENABLE_WEBSOCKETS=NO
  91. - BUILD_SHARED=YES
  92. NO_FILES=YES
  93. ENABLE_SSL=NO
  94. NO_CGI=NO
  95. ENABLE_IPV6=NO
  96. ENABLE_WEBSOCKETS=NO
  97. # One selected feature (IPv6)
  98. - BUILD_SHARED=NO
  99. NO_FILES=YES
  100. ENABLE_SSL=NO
  101. NO_CGI=YES
  102. ENABLE_IPV6=YES
  103. ENABLE_WEBSOCKETS=NO
  104. - BUILD_SHARED=YES
  105. NO_FILES=YES
  106. ENABLE_SSL=NO
  107. NO_CGI=YES
  108. ENABLE_IPV6=YES
  109. ENABLE_WEBSOCKETS=NO
  110. # One selected feature (WebSockets)
  111. - BUILD_SHARED=NO
  112. NO_FILES=YES
  113. ENABLE_SSL=NO
  114. NO_CGI=YES
  115. ENABLE_IPV6=NO
  116. ENABLE_WEBSOCKETS=YES
  117. - BUILD_SHARED=YES
  118. NO_FILES=YES
  119. ENABLE_SSL=NO
  120. NO_CGI=YES
  121. ENABLE_IPV6=NO
  122. ENABLE_WEBSOCKETS=YES
  123. # Selecteded combination (SSL + websocket)
  124. - BUILD_SHARED=NO
  125. NO_FILES=YES
  126. ENABLE_SSL=YES
  127. NO_CGI=YES
  128. ENABLE_IPV6=NO
  129. ENABLE_WEBSOCKETS=YES
  130. - BUILD_SHARED=YES
  131. NO_FILES=YES
  132. ENABLE_SSL=NO
  133. NO_CGI=YES
  134. ENABLE_IPV6=NO
  135. ENABLE_WEBSOCKETS=YES
  136. # Selecteded combination (SSL + CGI + files + websocket)
  137. - BUILD_SHARED=NO
  138. NO_FILES=NO
  139. ENABLE_SSL=YES
  140. NO_CGI=NO
  141. ENABLE_IPV6=NO
  142. ENABLE_WEBSOCKETS=YES
  143. - BUILD_SHARED=YES
  144. NO_FILES=NO
  145. ENABLE_SSL=NO
  146. NO_CGI=NO
  147. ENABLE_IPV6=NO
  148. ENABLE_WEBSOCKETS=YES
  149. addons:
  150. apt:
  151. packages:
  152. - cmake
  153. - openssl
  154. - libssl-dev
  155. sources:
  156. - kubuntu-backports
  157. before_install:
  158. - cmake --version
  159. install:
  160. - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
  161. PATH=~/.local/bin:${PATH};
  162. pip install --user --upgrade pip;
  163. pip install --user cpp-coveralls;
  164. fi
  165. before_script:
  166. # Check some settings of the build server
  167. - uname -a
  168. - pwd
  169. - ls -l
  170. - /sbin/ip addr show
  171. # Generate the build scripts with CMake
  172. - mkdir output
  173. - cd output
  174. - cmake --version
  175. - cmake
  176. -G "Unix Makefiles"
  177. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
  178. -DBUILD_SHARED_LIBS=${BUILD_SHARED}
  179. "-DCIVETWEB_THIRD_PARTY_DIR=${HOME}/third-party"
  180. -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES
  181. -DCIVETWEB_ENABLE_SSL=${ENABLE_SSL}
  182. -DCIVETWEB_DISABLE_CGI=${NO_CGI}
  183. -DCIVETWEB_SERVE_NO_FILES=${NO_FILES}
  184. -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=${ENABLE_SSL_DYNAMIC_LOADING}
  185. -DCIVETWEB_ENABLE_WEBSOCKETS=${ENABLE_WEBSOCKETS}
  186. -DCIVETWEB_ENABLE_CXX=${ENABLE_CXX}
  187. -DCIVETWEB_ENABLE_IPV6=${ENABLE_IPV6}
  188. -DCIVETWEB_ENABLE_LUA=${ENABLE_LUA}
  189. -DCIVETWEB_ENABLE_LUA_SHARED=${ENABLE_LUA_SHARED}
  190. -DCIVETWEB_C_STANDARD=${C_STANDARD}
  191. -DCIVETWEB_CXX_STANDARD=${CXX_STANDARD}
  192. ..
  193. cache:
  194. directories:
  195. - $HOME/third-party
  196. matrix:
  197. - fast_finish: true
  198. script:
  199. - CTEST_OUTPUT_ON_FAILURE=1 make all test
  200. after_success:
  201. - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
  202. coveralls --include src --include include --gcov-options '\-lp' --root .. --build-root .;
  203. fi