.travis.yml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954
  1. ##############################################################################
  2. # Project specific settings
  3. ##############################################################################
  4. language: c
  5. cache:
  6. directories:
  7. - $HOME/third-party
  8. osx_image: xcode8
  9. addons:
  10. apt:
  11. packages:
  12. - cmake
  13. - openssl
  14. - libssl-dev
  15. sources:
  16. - kubuntu-backports
  17. before_install:
  18. - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
  19. mkdir $HOME/usr;
  20. export PATH="$HOME/usr/bin:$PATH";
  21. wget https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.sh --no-check-certificate;
  22. chmod +x cmake-3.7.2-Linux-x86_64.sh;
  23. ./cmake-3.7.2-Linux-x86_64.sh --prefix=$HOME/usr --exclude-subdir --skip-license;
  24. fi
  25. - cmake --version
  26. install:
  27. - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
  28. PATH=~/.local/bin:${PATH};
  29. pip install --user --upgrade pip;
  30. pip install --user cpp-coveralls;
  31. fi
  32. before_script:
  33. # Add an IPv6 config - see the corresponding Travis issue
  34. # https://github.com/travis-ci/travis-ci/issues/8361
  35. - if [ "${ENABLE_IPV6}" == "YES" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
  36. echo "Activating IPv6 on Travis";
  37. sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6';
  38. fi
  39. # Check some settings of the build server (operating system, IPv6 availability, directory)
  40. - uname -a
  41. - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
  42. lsb_release -a;
  43. cat /etc/network/interfaces || true;
  44. fi
  45. - ifconfig
  46. - pwd
  47. - ls -la
  48. - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
  49. apt-cache search gcc | grep "GNU C compiler";
  50. apt-cache search clang | grep compiler;
  51. fi
  52. - if [[ "${BUILD_TYPE}" == "OSX_OPENSSL_1_1" ]]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install openssl@1.1 ;fi
  53. # Generate the build scripts with CMake
  54. - mkdir output
  55. - openssl version
  56. - gcc --version
  57. - cmake --version
  58. - gcc unittest/cgi_test.c -o output/cgi_test.cgi
  59. - cd output
  60. - echo cmake
  61. -G "Unix Makefiles"
  62. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
  63. -DBUILD_SHARED_LIBS=${BUILD_SHARED}
  64. "-DCIVETWEB_THIRD_PARTY_DIR=${HOME}/third-party"
  65. -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES
  66. -DCIVETWEB_ENABLE_SSL=${ENABLE_SSL}
  67. -DCIVETWEB_DISABLE_CGI=${NO_CGI}
  68. -DCIVETWEB_SERVE_NO_FILES=${NO_FILES}
  69. -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=${ENABLE_SSL_DYNAMIC_LOADING}
  70. -DCIVETWEB_SSL_OPENSSL_API_1_0=${OPENSSL_1_0}
  71. -DCIVETWEB_SSL_OPENSSL_API_1_1=${OPENSSL_1_1}
  72. -DCIVETWEB_ENABLE_WEBSOCKETS=${ENABLE_WEBSOCKETS}
  73. -DCIVETWEB_ENABLE_CXX=${ENABLE_CXX}
  74. -DCIVETWEB_ENABLE_SERVER_STATS=${ENABLE_SERVER_STATS}
  75. -DCIVETWEB_ENABLE_LUA=${ENABLE_LUA}
  76. -DCIVETWEB_ENABLE_LUA_SHARED=${ENABLE_LUA_SHARED}
  77. -DCIVETWEB_ENABLE_DUKTAPE=${ENABLE_DUKTAPE}
  78. -DCIVETWEB_DISABLE_CACHING=${NO_CACHING}
  79. -DCIVETWEB_C_STANDARD=${C_STANDARD}
  80. -DCIVETWEB_CXX_STANDARD=${CXX_STANDARD}
  81. -DCIVETWEB_ALLOW_WARNINGS=${ALLOW_WARNINGS}
  82. -DCIVETWEB_ENABLE_IPV6=${ENABLE_IPV6}
  83. ${ADDITIONAL_CMAKE_ARGS}
  84. ..
  85. - cmake
  86. -G "Unix Makefiles"
  87. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
  88. -DBUILD_SHARED_LIBS=${BUILD_SHARED}
  89. "-DCIVETWEB_THIRD_PARTY_DIR=${HOME}/third-party"
  90. -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES
  91. -DCIVETWEB_ENABLE_SSL=${ENABLE_SSL}
  92. -DCIVETWEB_DISABLE_CGI=${NO_CGI}
  93. -DCIVETWEB_SERVE_NO_FILES=${NO_FILES}
  94. -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=${ENABLE_SSL_DYNAMIC_LOADING}
  95. -DCIVETWEB_SSL_OPENSSL_API_1_0=${OPENSSL_1_0}
  96. -DCIVETWEB_SSL_OPENSSL_API_1_1=${OPENSSL_1_1}
  97. -DCIVETWEB_ENABLE_WEBSOCKETS=${ENABLE_WEBSOCKETS}
  98. -DCIVETWEB_ENABLE_CXX=${ENABLE_CXX}
  99. -DCIVETWEB_ENABLE_SERVER_STATS=${ENABLE_SERVER_STATS}
  100. -DCIVETWEB_ENABLE_LUA=${ENABLE_LUA}
  101. -DCIVETWEB_ENABLE_LUA_SHARED=${ENABLE_LUA_SHARED}
  102. -DCIVETWEB_ENABLE_DUKTAPE=${ENABLE_DUKTAPE}
  103. -DCIVETWEB_DISABLE_CACHING=${NO_CACHING}
  104. -DCIVETWEB_C_STANDARD=${C_STANDARD}
  105. -DCIVETWEB_CXX_STANDARD=${CXX_STANDARD}
  106. -DCIVETWEB_ALLOW_WARNINGS=${ALLOW_WARNINGS}
  107. -DCIVETWEB_ENABLE_IPV6=${ENABLE_IPV6}
  108. ${ADDITIONAL_CMAKE_ARGS}
  109. ..
  110. - ls -la
  111. # Modifications due to Travis IPv6 issues:
  112. # https://github.com/travis-ci/travis-ci/issues/8711
  113. # https://github.com/travis-ci/travis-ci/issues/8361
  114. # DCIVETWEB_ENABLE_IPV6=${ENABLE_IPV6} or =NO
  115. script:
  116. - if [ "${MACOSX_PACKAGE}" == "1" ]; then
  117. cd "${TRAVIS_BUILD_DIR}";
  118. make -f Makefile.osx package;
  119. else
  120. CTEST_OUTPUT_ON_FAILURE=1 make all test;
  121. fi
  122. - pwd
  123. - ls -la unittest
  124. - echo "Show all test logs:"
  125. - if [ "${MACOSX_PACKAGE}" != "1" ]; then
  126. for f in unittest/test-*.log; do printf "\n$f:\n"; cat $f; done;
  127. for f in unittest/test-*.xml; do printf "\n$f:\n"; cat $f; done;
  128. fi
  129. - echo "Build and test script DONE"
  130. # Coveralls options: https://github.com/eddyxu/cpp-coveralls/blob/master/README.md
  131. after_success:
  132. - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
  133. coveralls --include src --exclude src/main.c --exclude src/third_party --include include --gcov-options '\-lp' --root .. --build-root .;
  134. bash <(curl -s https://codecov.io/bash);
  135. fi
  136. conan-linux: &conan-linux
  137. os: linux
  138. dist: xenial
  139. language: python
  140. python: "3.7"
  141. services:
  142. - docker
  143. if: tag IS present
  144. before_install:
  145. - true
  146. install:
  147. - ./conan/travis/install.sh
  148. before_script:
  149. - true
  150. script:
  151. - ./conan/travis/build.sh
  152. after_success:
  153. - true
  154. conan-osx: &conan-osx
  155. os: osx
  156. language: generic
  157. if: tag IS present
  158. before_install:
  159. - true
  160. install:
  161. - ./conan/travis/install.sh
  162. before_script:
  163. - true
  164. script:
  165. - ./conan/travis/build.sh
  166. after_success:
  167. - true
  168. ##############################################################################
  169. # build matrix
  170. ##############################################################################
  171. matrix:
  172. fast_finish: false
  173. include:
  174. - dist: trusty
  175. sudo: false
  176. os: linux
  177. compiler: clang
  178. addons:
  179. apt:
  180. sources:
  181. - ubuntu-toolchain-r-test
  182. - llvm-toolchain-precise-3.8
  183. packages:
  184. - clang-3.8
  185. env:
  186. idx=1
  187. N=Clang3.8-Linux-Minimal-Debug
  188. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  189. BUILD_TYPE=Debug
  190. ENABLE_SSL_DYNAMIC_LOADING=YES
  191. OPENSSL_1_0=NO
  192. OPENSSL_1_1=NO
  193. ENABLE_CXX=NO
  194. ENABLE_LUA_SHARED=NO
  195. C_STANDARD=auto
  196. CXX_STANDARD=auto
  197. BUILD_SHARED=NO
  198. NO_FILES=YES
  199. ENABLE_SSL=NO
  200. NO_CGI=YES
  201. ENABLE_IPV6=NO
  202. ENABLE_WEBSOCKETS=NO
  203. ENABLE_SERVER_STATS=NO
  204. ENABLE_LUA=NO
  205. ENABLE_DUKTAPE=NO
  206. NO_CACHING=NO
  207. ALLOW_WARNINGS=YES
  208. - dist: trusty
  209. sudo: false
  210. os: linux
  211. compiler: clang
  212. addons:
  213. apt:
  214. sources:
  215. - ubuntu-toolchain-r-test
  216. - llvm-toolchain-precise-3.8
  217. packages:
  218. - clang-3.8
  219. env:
  220. idx=2
  221. N=Clang3.8-Linux-Default-Release
  222. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  223. BUILD_TYPE=Release
  224. ENABLE_SSL_DYNAMIC_LOADING=YES
  225. OPENSSL_1_0=YES
  226. OPENSSL_1_1=NO
  227. ENABLE_CXX=NO
  228. ENABLE_LUA_SHARED=NO
  229. C_STANDARD=auto
  230. CXX_STANDARD=auto
  231. BUILD_SHARED=NO
  232. NO_FILES=NO
  233. ENABLE_SSL=YES
  234. NO_CGI=NO
  235. ENABLE_IPV6=NO
  236. ENABLE_WEBSOCKETS=NO
  237. ENABLE_SERVER_STATS=NO
  238. ENABLE_LUA=NO
  239. ENABLE_DUKTAPE=NO
  240. NO_CACHING=NO
  241. NO_CACHING=NO
  242. ALLOW_WARNINGS=YES
  243. - dist: trusty
  244. sudo: false
  245. os: linux
  246. compiler: clang
  247. addons:
  248. apt:
  249. sources:
  250. - ubuntu-toolchain-r-test
  251. - llvm-toolchain-precise-3.8
  252. packages:
  253. - clang-3.8
  254. env:
  255. idx=3
  256. N=Clang3.8-Linux-Default-Release
  257. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  258. BUILD_TYPE=Release
  259. ENABLE_SSL_DYNAMIC_LOADING=YES
  260. OPENSSL_1_0=YES
  261. OPENSSL_1_1=NO
  262. ENABLE_CXX=NO
  263. ENABLE_LUA_SHARED=NO
  264. C_STANDARD=auto
  265. CXX_STANDARD=auto
  266. BUILD_SHARED=NO
  267. NO_FILES=NO
  268. ENABLE_SSL=YES
  269. NO_CGI=NO
  270. ENABLE_IPV6=NO
  271. ENABLE_WEBSOCKETS=NO
  272. ENABLE_SERVER_STATS=NO
  273. ENABLE_LUA=NO
  274. ENABLE_DUKTAPE=NO
  275. NO_CACHING=NO
  276. ALLOW_WARNINGS=YES
  277. - dist: trusty
  278. sudo: required
  279. os: linux
  280. compiler: clang
  281. addons:
  282. apt:
  283. sources:
  284. - ubuntu-toolchain-r-test
  285. - llvm-toolchain-precise-3.8
  286. packages:
  287. - clang-3.8
  288. env:
  289. idx=4
  290. N=Clang3.8-Linux-Complete-NoLua-Release
  291. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  292. BUILD_TYPE=Release
  293. ENABLE_SSL_DYNAMIC_LOADING=YES
  294. OPENSSL_1_0=YES
  295. OPENSSL_1_1=NO
  296. ENABLE_CXX=NO
  297. ENABLE_LUA_SHARED=NO
  298. C_STANDARD=auto
  299. CXX_STANDARD=auto
  300. BUILD_SHARED=NO
  301. NO_FILES=NO
  302. ENABLE_SSL=YES
  303. NO_CGI=NO
  304. ENABLE_IPV6=YES
  305. ENABLE_WEBSOCKETS=YES
  306. ENABLE_SERVER_STATS=YES
  307. ENABLE_LUA=NO
  308. ENABLE_DUKTAPE=NO
  309. NO_CACHING=YES
  310. ALLOW_WARNINGS=YES
  311. - dist: trusty
  312. sudo: required
  313. os: linux
  314. compiler: gcc
  315. addons:
  316. apt:
  317. sources:
  318. - ubuntu-toolchain-r-test
  319. packages:
  320. - g++-5
  321. env:
  322. idx=5
  323. N=GCC5-Linux-Complete-NoLua-Release
  324. MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
  325. BUILD_TYPE=Release
  326. ENABLE_SSL_DYNAMIC_LOADING=YES
  327. OPENSSL_1_0=YES
  328. OPENSSL_1_1=NO
  329. ENABLE_CXX=NO
  330. ENABLE_LUA_SHARED=NO
  331. C_STANDARD=auto
  332. CXX_STANDARD=auto
  333. BUILD_SHARED=NO
  334. NO_FILES=NO
  335. ENABLE_SSL=YES
  336. NO_CGI=NO
  337. ENABLE_IPV6=YES
  338. ENABLE_WEBSOCKETS=YES
  339. ENABLE_SERVER_STATS=YES
  340. ENABLE_LUA=NO
  341. ENABLE_DUKTAPE=NO
  342. NO_CACHING=YES
  343. ALLOW_WARNINGS=YES
  344. - os: linux
  345. sudo: required
  346. compiler: gcc
  347. env:
  348. idx=6
  349. N=GCCAnyVersion-Linux-Coverage
  350. BUILD_TYPE=Coverage
  351. ENABLE_SSL_DYNAMIC_LOADING=YES
  352. OPENSSL_1_0=YES
  353. OPENSSL_1_1=NO
  354. ENABLE_CXX=NO
  355. ENABLE_LUA_SHARED=NO
  356. C_STANDARD=auto
  357. CXX_STANDARD=auto
  358. BUILD_SHARED=NO
  359. NO_FILES=NO
  360. ENABLE_SSL=YES
  361. NO_CGI=NO
  362. ENABLE_IPV6=YES
  363. ENABLE_WEBSOCKETS=YES
  364. ENABLE_SERVER_STATS=YES
  365. ENABLE_LUA=NO
  366. ENABLE_DUKTAPE=NO
  367. NO_CACHING=NO
  368. ALLOW_WARNINGS=YES
  369. - os: osx
  370. sudo: required
  371. compiler: clang
  372. env:
  373. idx=7
  374. N=Clang-OSX-Complete-NoLua-Release
  375. BUILD_TYPE=Release
  376. ENABLE_SSL_DYNAMIC_LOADING=YES
  377. OPENSSL_1_0=YES
  378. OPENSSL_1_1=NO
  379. ENABLE_CXX=NO
  380. ENABLE_LUA_SHARED=NO
  381. C_STANDARD=auto
  382. CXX_STANDARD=auto
  383. BUILD_SHARED=NO
  384. NO_FILES=NO
  385. ENABLE_SSL=YES
  386. NO_CGI=NO
  387. ENABLE_IPV6=YES
  388. ENABLE_WEBSOCKETS=YES
  389. ENABLE_SERVER_STATS=YES
  390. ENABLE_LUA=NO
  391. ENABLE_DUKTAPE=NO
  392. NO_CACHING=YES
  393. ALLOW_WARNINGS=YES
  394. -
  395. os: osx
  396. sudo: required
  397. compiler: clang
  398. env:
  399. idx=8
  400. N=Clang-OSX-Complete-NoLua-Release-OpenSSL_1_1_NoDynLoad
  401. BUILD_TYPE=OSX_OPENSSL_1_1
  402. ENABLE_SSL_DYNAMIC_LOADING=NO
  403. OPENSSL_1_0=NO
  404. OPENSSL_1_1=YES
  405. ENABLE_CXX=NO
  406. ENABLE_LUA_SHARED=NO
  407. C_STANDARD=auto
  408. CXX_STANDARD=auto
  409. BUILD_SHARED=NO
  410. NO_FILES=NO
  411. ENABLE_SSL=YES
  412. NO_CGI=NO
  413. ENABLE_IPV6=YES
  414. ENABLE_WEBSOCKETS=YES
  415. ENABLE_SERVER_STATS=YES
  416. ENABLE_LUA=NO
  417. ENABLE_DUKTAPE=NO
  418. NO_CACHING=YES
  419. ALLOW_WARNINGS=YES
  420. OPENSSL_ROOT_DIR="/usr/local/opt/openssl@1.1"
  421. LDFLAGS="-L${OPENSSL_ROOT_DIR}/lib"
  422. CFLAGS="-I${OPENSSL_ROOT_DIR}/include"
  423. ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DCMAKE_C_FLAGS=${CFLAGS}"
  424. PATH="${OPENSSL_ROOT_DIR}/bin:$PATH"
  425. DYLD_LIBRARY_PATH="${OPENSSL_ROOT_DIR}/lib:${DYLD_LIBRARY_PATH}"
  426. - dist: trusty
  427. sudo: false
  428. os: linux
  429. compiler: clang
  430. addons:
  431. apt:
  432. sources:
  433. - ubuntu-toolchain-r-test
  434. - llvm-toolchain-trusty-5.0
  435. packages:
  436. - clang-5.0
  437. env:
  438. idx=9
  439. N=Clang50-Linux-Default-Shared
  440. BUILD_TYPE=Debug
  441. ENABLE_SSL_DYNAMIC_LOADING=YES
  442. OPENSSL_1_0=YES
  443. OPENSSL_1_1=NO
  444. ENABLE_CXX=NO
  445. ENABLE_LUA_SHARED=NO
  446. C_STANDARD=auto
  447. CXX_STANDARD=auto
  448. BUILD_SHARED=YES
  449. NO_FILES=NO
  450. ENABLE_SSL=YES
  451. NO_CGI=NO
  452. ENABLE_IPV6=NO
  453. ENABLE_WEBSOCKETS=NO
  454. ENABLE_SERVER_STATS=NO
  455. ENABLE_LUA=NO
  456. ENABLE_DUKTAPE=NO
  457. NO_CACHING=NO
  458. ALLOW_WARNINGS=YES
  459. MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
  460. -
  461. os: linux
  462. dist: precise
  463. sudo: required
  464. compiler: clang
  465. env:
  466. idx=10
  467. N=Precise-Clang-Linux-Default
  468. BUILD_TYPE=Debug
  469. ENABLE_SSL_DYNAMIC_LOADING=YES
  470. OPENSSL_1_0=YES
  471. OPENSSL_1_1=NO
  472. ENABLE_CXX=NO
  473. ENABLE_LUA_SHARED=NO
  474. C_STANDARD=auto
  475. CXX_STANDARD=auto
  476. BUILD_SHARED=NO
  477. NO_FILES=NO
  478. ENABLE_SSL=YES
  479. NO_CGI=NO
  480. ENABLE_IPV6=NO
  481. ENABLE_WEBSOCKETS=NO
  482. ENABLE_SERVER_STATS=NO
  483. ENABLE_LUA=NO
  484. ENABLE_DUKTAPE=NO
  485. NO_CACHING=NO
  486. ALLOW_WARNINGS=YES
  487. -
  488. os: osx
  489. sudo: required
  490. compiler: clang
  491. env:
  492. idx=11
  493. N=OSX-Package
  494. BUILD_TYPE=Release
  495. ENABLE_SSL_DYNAMIC_LOADING=YES
  496. OPENSSL_1_0=YES
  497. OPENSSL_1_1=NO
  498. ENABLE_CXX=NO
  499. ENABLE_LUA_SHARED=NO
  500. C_STANDARD=auto
  501. CXX_STANDARD=auto
  502. BUILD_SHARED=NO
  503. NO_FILES=NO
  504. ENABLE_SSL=YES
  505. NO_CGI=NO
  506. ENABLE_IPV6=YES
  507. ENABLE_WEBSOCKETS=YES
  508. ENABLE_SERVER_STATS=NO
  509. ENABLE_LUA=NO
  510. ENABLE_DUKTAPE=NO
  511. NO_CACHING=NO
  512. ALLOW_WARNINGS=YES
  513. MACOSX_PACKAGE=1
  514. - dist: trusty
  515. sudo: required
  516. os: linux
  517. compiler: clang
  518. addons:
  519. apt:
  520. sources:
  521. - ubuntu-toolchain-r-test
  522. - llvm-toolchain-trusty-3.8
  523. packages:
  524. - clang-3.8
  525. env:
  526. idx=12
  527. N=Clang-Linux-32bit-Complete-NoLua-Release
  528. ARCH=x86
  529. BUILD_TYPE=Release
  530. ENABLE_SSL_DYNAMIC_LOADING=YES
  531. OPENSSL_1_0=YES
  532. OPENSSL_1_1=NO
  533. ENABLE_CXX=NO
  534. ENABLE_LUA_SHARED=NO
  535. C_STANDARD=auto
  536. CXX_STANDARD=auto
  537. BUILD_SHARED=NO
  538. NO_FILES=NO
  539. ENABLE_SSL=YES
  540. NO_CGI=NO
  541. ENABLE_IPV6=YES
  542. ENABLE_WEBSOCKETS=YES
  543. ENABLE_SERVER_STATS=YES
  544. ENABLE_LUA=NO
  545. ENABLE_DUKTAPE=NO
  546. NO_CACHING=YES
  547. ALLOW_WARNINGS=YES
  548. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  549. ### Test all build types:
  550. # According to CMakeLists, options are:
  551. # None Debug Release RelWithDebInfo MinSizeRel Coverage
  552. -
  553. os: linux
  554. sudo: required
  555. compiler: clang
  556. env:
  557. idx=13
  558. N=NoSslDynamicLoading
  559. BUILD_TYPE=Release
  560. ENABLE_SSL_DYNAMIC_LOADING=NO
  561. OPENSSL_1_0=YES
  562. OPENSSL_1_1=NO
  563. ENABLE_CXX=NO
  564. C_STANDARD=auto
  565. CXX_STANDARD=auto
  566. ENABLE_LUA_SHARED=NO
  567. BUILD_SHARED=NO
  568. NO_FILES=NO
  569. ENABLE_SSL=YES
  570. NO_CGI=NO
  571. ENABLE_IPV6=YES
  572. ENABLE_WEBSOCKETS=YES
  573. ENABLE_LUA=NO
  574. ENABLE_DUKTAPE=NO
  575. NO_CACHING=NO
  576. ALLOW_WARNINGS=YES
  577. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  578. -
  579. os: linux
  580. compiler: gcc
  581. env:
  582. idx=14
  583. N=GCCLinuxDefault_Debug
  584. BUILD_TYPE=Debug
  585. ENABLE_SSL_DYNAMIC_LOADING=YES
  586. OPENSSL_1_0=YES
  587. OPENSSL_1_1=NO
  588. ENABLE_CXX=NO
  589. ENABLE_LUA_SHARED=NO
  590. C_STANDARD=auto
  591. CXX_STANDARD=auto
  592. BUILD_SHARED=NO
  593. NO_FILES=NO
  594. ENABLE_SSL=YES
  595. NO_CGI=NO
  596. ENABLE_IPV6=NO
  597. ENABLE_WEBSOCKETS=NO
  598. ENABLE_LUA=NO
  599. ENABLE_DUKTAPE=NO
  600. NO_CACHING=NO
  601. ALLOW_WARNINGS=YES
  602. -
  603. os: linux
  604. compiler: gcc
  605. env:
  606. idx=15
  607. N=GCCLinuxDefault_RelWithDebInfo
  608. BUILD_TYPE=RelWithDebInfo
  609. ENABLE_SSL_DYNAMIC_LOADING=YES
  610. OPENSSL_1_0=YES
  611. OPENSSL_1_1=NO
  612. ENABLE_CXX=NO
  613. ENABLE_LUA_SHARED=NO
  614. C_STANDARD=auto
  615. CXX_STANDARD=auto
  616. BUILD_SHARED=NO
  617. NO_FILES=NO
  618. ENABLE_SSL=YES
  619. NO_CGI=NO
  620. ENABLE_IPV6=NO
  621. ENABLE_WEBSOCKETS=NO
  622. ENABLE_LUA=NO
  623. ENABLE_DUKTAPE=NO
  624. NO_CACHING=NO
  625. ALLOW_WARNINGS=YES
  626. -
  627. os: linux
  628. compiler: gcc
  629. env:
  630. idx=16
  631. N=GCCLinuxDefault_MinSizeRel
  632. BUILD_TYPE=MinSizeRel
  633. ENABLE_SSL_DYNAMIC_LOADING=YES
  634. OPENSSL_1_0=YES
  635. OPENSSL_1_1=NO
  636. ENABLE_CXX=NO
  637. ENABLE_LUA_SHARED=NO
  638. C_STANDARD=auto
  639. CXX_STANDARD=auto
  640. BUILD_SHARED=NO
  641. NO_FILES=NO
  642. ENABLE_SSL=YES
  643. NO_CGI=NO
  644. ENABLE_IPV6=NO
  645. ENABLE_WEBSOCKETS=NO
  646. ENABLE_LUA=NO
  647. ENABLE_DUKTAPE=NO
  648. NO_CACHING=NO
  649. ALLOW_WARNINGS=YES
  650. -
  651. os: linux
  652. compiler: gcc
  653. env:
  654. idx=17
  655. N=GCCLinuxDefault_None
  656. BUILD_TYPE=None
  657. ENABLE_SSL_DYNAMIC_LOADING=YES
  658. OPENSSL_1_0=YES
  659. OPENSSL_1_1=NO
  660. ENABLE_CXX=NO
  661. ENABLE_LUA_SHARED=NO
  662. C_STANDARD=auto
  663. CXX_STANDARD=auto
  664. BUILD_SHARED=NO
  665. NO_FILES=NO
  666. ENABLE_SSL=YES
  667. NO_CGI=NO
  668. ENABLE_IPV6=NO
  669. ENABLE_WEBSOCKETS=NO
  670. ENABLE_LUA=NO
  671. ENABLE_DUKTAPE=NO
  672. NO_CACHING=NO
  673. ALLOW_WARNINGS=YES
  674. -
  675. os: linux
  676. compiler: clang
  677. env:
  678. idx=18
  679. N=Clang3.8-Linux-Complete-NoLua-Debug
  680. MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  681. BUILD_TYPE=Debug
  682. ENABLE_SSL_DYNAMIC_LOADING=YES
  683. OPENSSL_1_0=YES
  684. OPENSSL_1_1=NO
  685. ENABLE_CXX=NO
  686. ENABLE_LUA_SHARED=YES
  687. C_STANDARD=auto
  688. CXX_STANDARD=auto
  689. BUILD_SHARED=NO
  690. NO_FILES=NO
  691. ENABLE_SSL=YES
  692. NO_CGI=NO
  693. ENABLE_IPV6=YES
  694. ENABLE_WEBSOCKETS=YES
  695. ENABLE_SERVER_STATS=YES
  696. ENABLE_LUA=NO
  697. ENABLE_DUKTAPE=NO
  698. NO_CACHING=YES
  699. ALLOW_WARNINGS=YES
  700. - dist: trusty
  701. sudo: false
  702. os: linux
  703. compiler: clang
  704. addons:
  705. apt:
  706. sources:
  707. - ubuntu-toolchain-r-test
  708. - llvm-toolchain-trusty-5.0
  709. packages:
  710. - clang-5.0
  711. env:
  712. idx=19
  713. N=Clang5.0-Linux-Complete-CXX-NoLua-Release
  714. MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
  715. BUILD_TYPE=Release
  716. ENABLE_SSL_DYNAMIC_LOADING=YES
  717. OPENSSL_1_0=YES
  718. OPENSSL_1_1=NO
  719. ENABLE_CXX=YES
  720. ENABLE_LUA_SHARED=YES
  721. C_STANDARD=auto
  722. CXX_STANDARD=auto
  723. BUILD_SHARED=NO
  724. NO_FILES=NO
  725. ENABLE_SSL=YES
  726. NO_CGI=NO
  727. ENABLE_IPV6=YES
  728. ENABLE_WEBSOCKETS=YES
  729. ENABLE_SERVER_STATS=YES
  730. ENABLE_LUA=NO
  731. ENABLE_DUKTAPE=NO
  732. NO_CACHING=NO
  733. ALLOW_WARNINGS=YES
  734. -
  735. os: linux
  736. compiler: gcc
  737. dist: xenial
  738. env:
  739. idx=20
  740. N=GCCLinuxDefault_xenial
  741. BUILD_TYPE=Release
  742. ENABLE_SSL_DYNAMIC_LOADING=YES
  743. OPENSSL_1_0=YES
  744. OPENSSL_1_1=NO
  745. ENABLE_CXX=NO
  746. ENABLE_LUA_SHARED=NO
  747. C_STANDARD=auto
  748. CXX_STANDARD=auto
  749. BUILD_SHARED=NO
  750. NO_FILES=NO
  751. ENABLE_SSL=YES
  752. NO_CGI=NO
  753. ENABLE_IPV6=NO
  754. ENABLE_WEBSOCKETS=NO
  755. ENABLE_LUA=NO
  756. ENABLE_DUKTAPE=NO
  757. NO_CACHING=NO
  758. ALLOW_WARNINGS=YES
  759. -
  760. os: linux
  761. compiler: gcc
  762. dist: bionic
  763. env:
  764. idx=21
  765. N=GCCLinuxDefault_bionic
  766. BUILD_TYPE=Release
  767. ENABLE_SSL_DYNAMIC_LOADING=YES
  768. OPENSSL_1_0=NO
  769. OPENSSL_1_1=YES
  770. ENABLE_CXX=NO
  771. ENABLE_LUA_SHARED=NO
  772. C_STANDARD=auto
  773. CXX_STANDARD=auto
  774. BUILD_SHARED=NO
  775. NO_FILES=NO
  776. ENABLE_SSL=YES
  777. NO_CGI=NO
  778. ENABLE_IPV6=NO
  779. ENABLE_WEBSOCKETS=NO
  780. ENABLE_LUA=NO
  781. ENABLE_DUKTAPE=NO
  782. NO_CACHING=NO
  783. ALLOW_WARNINGS=YES
  784. -
  785. os: linux
  786. compiler: gcc
  787. dist: eoan
  788. env:
  789. idx=22
  790. N=GCCLinuxDefault_eoan
  791. BUILD_TYPE=Release
  792. ENABLE_SSL_DYNAMIC_LOADING=YES
  793. OPENSSL_1_0=NO
  794. OPENSSL_1_1=YES
  795. ENABLE_CXX=NO
  796. ENABLE_LUA_SHARED=NO
  797. C_STANDARD=auto
  798. CXX_STANDARD=auto
  799. BUILD_SHARED=NO
  800. NO_FILES=NO
  801. ENABLE_SSL=YES
  802. NO_CGI=NO
  803. ENABLE_IPV6=NO
  804. ENABLE_WEBSOCKETS=NO
  805. ENABLE_LUA=NO
  806. ENABLE_DUKTAPE=NO
  807. NO_CACHING=NO
  808. ALLOW_WARNINGS=YES
  809. -
  810. os: linux
  811. compiler: gcc
  812. dist: focal
  813. addons:
  814. apt:
  815. packages:
  816. - lsb-core
  817. env:
  818. idx=23
  819. N=GCCLinuxDefault_focal
  820. BUILD_TYPE=Release
  821. ENABLE_SSL_DYNAMIC_LOADING=YES
  822. OPENSSL_1_0=NO
  823. OPENSSL_1_1=YES
  824. ENABLE_CXX=NO
  825. ENABLE_LUA_SHARED=NO
  826. C_STANDARD=auto
  827. CXX_STANDARD=auto
  828. BUILD_SHARED=NO
  829. NO_FILES=NO
  830. ENABLE_SSL=YES
  831. NO_CGI=NO
  832. ENABLE_IPV6=NO
  833. ENABLE_WEBSOCKETS=NO
  834. ENABLE_LUA=NO
  835. ENABLE_DUKTAPE=NO
  836. NO_CACHING=NO
  837. ALLOW_WARNINGS=YES
  838. - <<: *conan-linux
  839. env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=conanio/gcc49 CONAN_DOCKER_32_IMAGES=1
  840. - <<: *conan-linux
  841. env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=conanio/gcc5 CONAN_DOCKER_32_IMAGES=1
  842. - <<: *conan-linux
  843. env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=conanio/gcc6 CONAN_DOCKER_32_IMAGES=1
  844. - <<: *conan-linux
  845. env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=conanio/gcc7 CONAN_DOCKER_32_IMAGES=1
  846. - <<: *conan-linux
  847. env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8 CONAN_DOCKER_32_IMAGES=1
  848. - <<: *conan-linux
  849. env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=conanio/clang39 CONAN_DOCKER_32_IMAGES=1
  850. - <<: *conan-linux
  851. env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=conanio/clang40 CONAN_DOCKER_32_IMAGES=1
  852. - <<: *conan-linux
  853. env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=conanio/clang50 CONAN_DOCKER_32_IMAGES=1
  854. - <<: *conan-linux
  855. env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=conanio/clang60 CONAN_DOCKER_32_IMAGES=1
  856. - <<: *conan-osx
  857. osx_image: xcode8.3
  858. env: CONAN_APPLE_CLANG_VERSIONS=8.1
  859. - <<: *conan-osx
  860. osx_image: xcode9
  861. env: CONAN_APPLE_CLANG_VERSIONS=9.0
  862. - <<: *conan-osx
  863. osx_image: xcode9.4
  864. env: CONAN_APPLE_CLANG_VERSIONS=9.1
  865. - <<: *conan-osx
  866. osx_image: xcode10.1
  867. env: CONAN_APPLE_CLANG_VERSIONS=10.0
  868. # Remove Lua build, until someone knows how to fix the CMake files
  869. #
  870. # - dist: trusty
  871. # sudo: required
  872. # os: linux
  873. # compiler: clang
  874. # addons:
  875. # apt:
  876. # sources:
  877. # - ubuntu-toolchain-r-test
  878. # - llvm-toolchain-precise-3.8
  879. # packages:
  880. # - clang-3.8
  881. # - lua5.2
  882. # env:
  883. # idx=99
  884. # N=Clang3.8-Linux-Complete-WithLua-Debug
  885. # MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
  886. # BUILD_TYPE=Debug
  887. # ENABLE_SSL_DYNAMIC_LOADING=YES
  888. # OPENSSL_1_0=NO
  889. # OPENSSL_1_1=YES
  890. # ENABLE_CXX=NO
  891. # ENABLE_LUA_SHARED=YES
  892. # C_STANDARD=auto
  893. # CXX_STANDARD=auto
  894. # BUILD_SHARED=NO
  895. # NO_FILES=NO
  896. # ENABLE_SSL=YES
  897. # NO_CGI=NO
  898. # ENABLE_IPV6=YES
  899. # ENABLE_WEBSOCKETS=YES
  900. # ENABLE_SERVER_STATS=YES
  901. # ENABLE_LUA=YES
  902. # ENABLE_LUA_SHARED=YES
  903. # ENABLE_DUKTAPE=NO
  904. # NO_CACHING=YES
  905. # ALLOW_WARNINGS=YES