.travis.yml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665
  1. language: c
  2. sudo: required
  3. cache:
  4. directories:
  5. - $HOME/wolfssl-4.0.0-stable
  6. - $HOME/mesalink-1.0.0
  7. - $HOME/nghttp2-1.39.2
  8. env:
  9. global:
  10. - LD_LIBRARY_PATH=/usr/local/lib
  11. addons:
  12. apt:
  13. config:
  14. retries: true
  15. sources: &common_sources
  16. - ubuntu-toolchain-r-test
  17. packages: &common_packages
  18. - cmake
  19. - gcc-8
  20. - valgrind
  21. - libev-dev
  22. - libc-ares-dev
  23. - g++-8
  24. - libstdc++-8-dev
  25. - stunnel4
  26. - libidn2-0-dev
  27. - gnutls-bin
  28. matrix:
  29. include:
  30. - os: linux
  31. compiler: gcc
  32. dist: trusty
  33. env:
  34. - T=normal C="--with-gssapi --with-libssh2" CHECKSRC=1
  35. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  36. addons:
  37. apt:
  38. sources:
  39. - *common_sources
  40. packages:
  41. - *common_packages
  42. - krb5-user
  43. - libssh2-1-dev
  44. - os: linux
  45. compiler: gcc
  46. dist: trusty
  47. env:
  48. - T=normal C=--with-libssh
  49. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  50. addons:
  51. apt:
  52. sources:
  53. - *common_sources
  54. packages:
  55. - *common_packages
  56. - libssh-dev
  57. - os: linux
  58. compiler: gcc
  59. dist: trusty
  60. env:
  61. - T=normal C="--disable-http --disable-smtp --disable-imap"
  62. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  63. - os: linux
  64. compiler: gcc
  65. dist: trusty
  66. env:
  67. - T=normal C="--enable-ares"
  68. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  69. - os: linux
  70. compiler: gcc
  71. dist: xenial
  72. env:
  73. - T=normal C="--disable-verbose" CPPFLAGS="-Wno-variadic-macros" NOTESTS=1
  74. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  75. addons:
  76. apt:
  77. sources:
  78. - *common_sources
  79. packages:
  80. - *common_packages
  81. - libpsl-dev
  82. - libbrotli-dev
  83. - os: linux
  84. compiler: gcc
  85. dist: xenial
  86. env:
  87. - T=novalgrind BORINGSSL=yes C="--with-ssl=$HOME/boringssl" LD_LIBRARY_PATH=/home/travis/boringssl/lib:/usr/local/lib
  88. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  89. addons:
  90. apt:
  91. sources:
  92. - *common_sources
  93. packages:
  94. - *common_packages
  95. - libpsl-dev
  96. - libbrotli-dev
  97. - os: linux
  98. compiler: gcc
  99. dist: xenial
  100. env:
  101. - T=novalgrind BORINGSSL=yes QUICHE="yes" C="--with-ssl=$HOME/boringssl --with-quiche=$HOME/quiche/target/release --enable-alt-svc" LD_LIBRARY_PATH=/home/travis/boringssl/lib:$HOME/quiche/target/release:/usr/local/lib
  102. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  103. addons:
  104. apt:
  105. sources:
  106. - *common_sources
  107. packages:
  108. - *common_packages
  109. - libpsl-dev
  110. - libbrotli-dev
  111. #- os: linux
  112. # compiler: gcc
  113. # dist: xenial
  114. # env:
  115. # - T=novalgrind NGTCP2=yes C="--with-ssl=$HOME/ngbuild --with-ngtcp2=$HOME/ngbuild --with-nghttp3=$HOME/ngbuild --enable-alt-svc" NOTESTS=
  116. # - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  117. # addons:
  118. # apt:
  119. # sources:
  120. # - *common_sources
  121. # packages:
  122. # - *common_packages
  123. # - libpsl-dev
  124. # - libbrotli-dev
  125. - os: linux
  126. compiler: gcc
  127. dist: xenial
  128. env:
  129. - T=debug-wolfssl C="--with-wolfssl --without-ssl"
  130. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  131. addons:
  132. apt:
  133. sources:
  134. - *common_sources
  135. packages:
  136. - *common_packages
  137. - libpsl-dev
  138. - libbrotli-dev
  139. - os: linux
  140. compiler: gcc
  141. dist: xenial
  142. env:
  143. - T=debug-mesalink C="--with-mesalink --without-ssl"
  144. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  145. addons:
  146. apt:
  147. sources:
  148. - *common_sources
  149. packages:
  150. - *common_packages
  151. - libpsl-dev
  152. - libbrotli-dev
  153. - os: linux
  154. compiler: clang
  155. dist: xenial
  156. env:
  157. - T=debug
  158. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  159. addons:
  160. apt:
  161. sources:
  162. - *common_sources
  163. - llvm-toolchain-xenial-7
  164. packages:
  165. - *common_packages
  166. - clang-7
  167. - libpsl-dev
  168. - libbrotli-dev
  169. - os: linux
  170. compiler: clang
  171. dist: xenial
  172. env:
  173. - T=debug C="--enable-alt-svc"
  174. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  175. addons:
  176. apt:
  177. sources:
  178. - *common_sources
  179. - llvm-toolchain-xenial-7
  180. packages:
  181. - *common_packages
  182. - clang-7
  183. - libpsl-dev
  184. - libbrotli-dev
  185. - os: linux
  186. compiler: clang
  187. dist: xenial
  188. env:
  189. - T=debug C="--with-mbedtls --without-ssl"
  190. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  191. addons:
  192. apt:
  193. sources:
  194. - *common_sources
  195. - llvm-toolchain-xenial-7
  196. packages:
  197. - *common_packages
  198. - clang-7
  199. - libpsl-dev
  200. - libbrotli-dev
  201. - libmbedtls-dev
  202. - os: linux
  203. compiler: clang
  204. dist: xenial
  205. env:
  206. - T=debug C="--with-gnutls --without-ssl"
  207. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  208. addons:
  209. apt:
  210. sources:
  211. - *common_sources
  212. - llvm-toolchain-xenial-7
  213. packages:
  214. - *common_packages
  215. - clang-7
  216. - libgnutls28-dev
  217. - libpsl-dev
  218. - libbrotli-dev
  219. - os: linux
  220. compiler: clang
  221. dist: xenial
  222. env:
  223. - T=debug C="--disable-threaded-resolver"
  224. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  225. addons:
  226. apt:
  227. sources:
  228. - *common_sources
  229. - llvm-toolchain-xenial-7
  230. packages:
  231. - *common_packages
  232. - clang-7
  233. - libpsl-dev
  234. - libbrotli-dev
  235. - os: linux
  236. compiler: clang
  237. dist: xenial
  238. env:
  239. - T=debug C="--with-nss --without-ssl" NOTESTS=1 CPPFLAGS="-isystem /usr/include/nss"
  240. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  241. addons:
  242. apt:
  243. sources:
  244. - *common_sources
  245. - llvm-toolchain-xenial-7
  246. packages:
  247. - *common_packages
  248. - clang-7
  249. - libnss3-dev
  250. - libpsl-dev
  251. - libbrotli-dev
  252. - os: linux
  253. compiler: gcc
  254. dist: trusty
  255. env:
  256. - T=iconv
  257. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  258. - os: osx
  259. compiler: gcc
  260. env: T=debug C=--with-libssh2
  261. - os: osx
  262. compiler: gcc
  263. env: T=debug C="--disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets --disable-shared --enable-debug --enable-maintainer-mode --without-brotli --without-gssapi --without-libidn2 --without-libmetalink --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib"
  264. - os: osx
  265. compiler: gcc
  266. env: T=debug C=--enable-ares
  267. - os: osx
  268. compiler: gcc
  269. env: T=debug C="--with-ssl=/usr/local/opt/openssl --with-libmetalink"
  270. - os: osx
  271. compiler: gcc
  272. env: T=debug C="--with-ssl=/usr/local/opt/libressl --with-libmetalink"
  273. - os: osx
  274. compiler: clang
  275. osx_image: xcode10
  276. env: T=debug C="--without-ssl --with-darwinssl --with-libmetalink"
  277. - os: osx
  278. compiler: clang
  279. env: T=normal
  280. - os: osx
  281. compiler: clang
  282. env: T=cmake
  283. - os: linux
  284. compiler: gcc
  285. dist: xenial
  286. env:
  287. - T=cmake
  288. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  289. addons:
  290. apt:
  291. sources:
  292. - *common_sources
  293. packages:
  294. - *common_packages
  295. - libpsl-dev
  296. - libbrotli-dev
  297. - os: linux
  298. compiler: clang
  299. dist: xenial
  300. env:
  301. - T=cmake
  302. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  303. addons:
  304. apt:
  305. sources:
  306. - *common_sources
  307. - llvm-toolchain-xenial-7
  308. packages:
  309. - *common_packages
  310. - clang-7
  311. - libpsl-dev
  312. - libbrotli-dev
  313. - os: linux
  314. compiler: gcc
  315. dist: xenial
  316. env:
  317. - T=coverage
  318. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  319. addons:
  320. apt:
  321. sources:
  322. - *common_sources
  323. packages:
  324. - *common_packages
  325. - lcov
  326. - libpsl-dev
  327. - libbrotli-dev
  328. - libssh2-1-dev
  329. - os: linux
  330. compiler: gcc
  331. dist: xenial
  332. env:
  333. - T=distcheck
  334. - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
  335. addons:
  336. apt:
  337. sources:
  338. - *common_sources
  339. packages:
  340. - *common_packages
  341. - libpsl-dev
  342. - libbrotli-dev
  343. - os: linux
  344. compiler: clang
  345. dist: xenial
  346. env:
  347. - T=fuzzer
  348. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  349. addons:
  350. apt:
  351. sources:
  352. - *common_sources
  353. - llvm-toolchain-xenial-7
  354. packages:
  355. - *common_packages
  356. - clang-7
  357. - libpsl-dev
  358. - libbrotli-dev
  359. - os: linux
  360. compiler: clang
  361. dist: xenial
  362. env:
  363. - T=tidy
  364. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  365. addons:
  366. apt:
  367. sources:
  368. - *common_sources
  369. - llvm-toolchain-xenial-7
  370. packages:
  371. - *common_packages
  372. - clang-7
  373. - clang-tidy-7
  374. - libpsl-dev
  375. - libbrotli-dev
  376. - os: linux
  377. compiler: clang
  378. dist: xenial
  379. env:
  380. - T=scan-build
  381. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  382. addons:
  383. apt:
  384. sources:
  385. - *common_sources
  386. - llvm-toolchain-xenial-7
  387. packages:
  388. - *common_packages
  389. - clang-7
  390. - libpsl-dev
  391. - libbrotli-dev
  392. - os: linux
  393. compiler: clang
  394. dist: xenial
  395. env:
  396. - T=debug CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" LIBS="-ldl -lubsan"
  397. - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
  398. addons:
  399. apt:
  400. sources:
  401. - *common_sources
  402. - llvm-toolchain-xenial-7
  403. packages:
  404. - *common_packages
  405. - clang-7
  406. - libpsl-dev
  407. - libbrotli-dev
  408. before_install:
  409. - eval "${OVERRIDE_CC}"
  410. - eval "${OVERRIDE_CXX}"
  411. install:
  412. - if [ "$T" = "coverage" ]; then pip2 install --user cpp-coveralls; fi
  413. - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update > /dev/null; fi
  414. - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew reinstall libtool > /dev/null; fi
  415. - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install rtmpdump libssh2 c-ares libmetalink libressl nghttp2 libmetalink; fi
  416. before_script:
  417. - ./buildconf
  418. - |
  419. if [ "$NGTCP2" = yes ]; then
  420. (cd $HOME &&
  421. git clone --depth 1 -b openssl-quic-draft-22 https://github.com/tatsuhiro-t/openssl possl &&
  422. cd possl &&
  423. ./config enable-tls1_3 --prefix=$HOME/ngbuild &&
  424. make && make install_sw &&
  425. cd .. &&
  426. git clone --depth 1 https://github.com/ngtcp2/nghttp3
  427. cd nghttp3 &&
  428. autoreconf -i &&
  429. ./configure --prefix=$HOME/ngbuild --enable-lib-only &&
  430. make && make install &&
  431. cd .. &&
  432. git clone --depth 1 -b draft-22 https://github.com/ngtcp2/ngtcp2 &&
  433. cd ngtcp2 &&
  434. autoreconf -i &&
  435. ./configure PKG_CONFIG_PATH=$HOME/ngbuild/lib/pkgconfig LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --prefix=$HOME/ngbuild &&
  436. make && make install)
  437. fi
  438. - |
  439. if [ "$TRAVIS_OS_NAME" = linux -a "$BORINGSSL" ]; then
  440. (cd $HOME &&
  441. git clone --depth=1 https://boringssl.googlesource.com/boringssl &&
  442. cd boringssl &&
  443. mkdir build &&
  444. cd build &&
  445. CXX="g++" CC="gcc" cmake -DCMAKE_BUILD_TYPE=release -DBUILD_SHARED_LIBS=1 .. &&
  446. make &&
  447. cd .. &&
  448. mkdir lib &&
  449. cd lib &&
  450. cp ../build/crypto/libcrypto.so . &&
  451. cp ../build/ssl/libssl.so . &&
  452. echo "BoringSSL lib dir: "`pwd` &&
  453. cd ../build &&
  454. make clean && rm -f CMakeCache.txt &&
  455. CXX="g++" CC="gcc" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=on .. &&
  456. make &&
  457. export LIBS=-lpthread )
  458. fi
  459. - |
  460. if [ "$TRAVIS_OS_NAME" = linux -a "$QUICHE" ]; then
  461. (cd $HOME &&
  462. git clone --depth=1 https://github.com/cloudflare/quiche.git &&
  463. curl https://sh.rustup.rs -sSf | sh -s -- -y &&
  464. source $HOME/.cargo/env &&
  465. cd quiche &&
  466. QUICHE_BSSL_PATH=$HOME/boringssl cargo build -v --release --features pkg-config-meta)
  467. fi
  468. - |
  469. if [ $TRAVIS_OS_NAME = linux ]; then
  470. if [ ! -e $HOME/wolfssl-4.0.0-stable/Makefile ]; then
  471. (cd $HOME && \
  472. curl -LO https://github.com/wolfSSL/wolfssl/archive/v4.0.0-stable.tar.gz && \
  473. tar -xzf v4.0.0-stable.tar.gz && \
  474. cd wolfssl-4.0.0-stable && \
  475. ./autogen.sh && \
  476. ./configure --enable-tls13 --enable-all && \
  477. touch wolfssl/wolfcrypt/fips.h && \
  478. make)
  479. fi
  480. fi
  481. - |
  482. if [ $TRAVIS_OS_NAME = linux ]; then
  483. if [ ! -e $HOME/mesalink-1.0.0/Makefile ]; then
  484. (cd $HOME && \
  485. curl https://sh.rustup.rs -sSf | sh -s -- -y && \
  486. source $HOME/.cargo/env && \
  487. curl -LO https://github.com/mesalock-linux/mesalink/archive/v1.0.0.tar.gz && \
  488. tar -xzf v1.0.0.tar.gz && \
  489. cd mesalink-1.0.0 && \
  490. ./autogen.sh && \
  491. ./configure --enable-tls13 && \
  492. make)
  493. fi
  494. fi
  495. - |
  496. if [ $TRAVIS_OS_NAME = linux ]; then
  497. if [ ! -e $HOME/nghttp2-1.39.2/Makefile ]; then
  498. (cd $HOME && \
  499. curl -L https://github.com/nghttp2/nghttp2/releases/download/v1.39.2/nghttp2-1.39.2.tar.gz |
  500. tar xzf - && \
  501. cd nghttp2-1.39.2 && \
  502. CXX="g++-8" CC="gcc-8" CFLAGS="" LDFLAGS="" LIBS="" ./configure --disable-threads --enable-app && \
  503. make)
  504. fi
  505. fi
  506. - |
  507. if [ $TRAVIS_OS_NAME = linux ]; then
  508. (cd $HOME/wolfssl-4.0.0-stable && sudo make install)
  509. (cd $HOME/mesalink-1.0.0 && sudo make install)
  510. (cd $HOME/nghttp2-1.39.2 && sudo make install)
  511. fi
  512. script:
  513. - |
  514. set -eo pipefail
  515. if [ "$T" = "coverage" ]; then
  516. ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --enable-alt-svc --with-libssh2
  517. make
  518. make TFLAGS=-n test-nonflaky
  519. make "TFLAGS=-n -e" test-nonflaky
  520. tests="1 200 300 500 700 800 900 1000 1100 1200 1302 1400 1502 3000"
  521. make "TFLAGS=-n -t $tests" test-nonflaky
  522. coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -i src -e lib -e tests -e docs -b $PWD/src
  523. coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -e src -i lib -e tests -e docs -b $PWD/lib
  524. fi
  525. - |
  526. set -eo pipefail
  527. if [ "$T" = "debug" ]; then
  528. ./configure --enable-debug --enable-werror $C
  529. make && make examples
  530. if [ -z $NOTESTS ]; then
  531. make TFLAGS=-n test-nonflaky
  532. fi
  533. fi
  534. - |
  535. set -eo pipefail
  536. if [ "$T" = "debug-wolfssl" ]; then
  537. ./configure --enable-debug --enable-werror $C
  538. make
  539. make "TFLAGS=-n !313" test-nonflaky
  540. fi
  541. - |
  542. set -eo pipefail
  543. if [ "$T" = "debug-mesalink" ]; then
  544. ./configure --enable-debug --enable-werror $C
  545. make
  546. make "TFLAGS=-n !313 !3001" test-nonflaky
  547. fi
  548. - |
  549. set -eo pipefail
  550. if [ "$T" = "novalgrind" ]; then
  551. ./configure --enable-werror $C
  552. make && make examples
  553. make TFLAGS=-n test-nonflaky
  554. fi
  555. - |
  556. set -eo pipefail
  557. if [ "$T" = "normal" ]; then
  558. if [ $TRAVIS_OS_NAME = linux ]; then
  559. # Remove system curl to make sure we don't rely on it.
  560. # Only done on Linux since we're not permitted to on mac.
  561. sudo rm -f /usr/bin/curl
  562. fi
  563. ./configure --enable-warnings --enable-werror $C
  564. make && make examples
  565. if [ -z $NOTESTS ]; then
  566. make test-nonflaky
  567. fi
  568. if [ -n $CHECKSRC ]; then
  569. make checksrc
  570. fi
  571. fi
  572. - |
  573. set -eo pipefail
  574. if [ "$T" = "tidy" ]; then
  575. ./configure --enable-warnings --enable-werror $C
  576. make && make tidy
  577. fi
  578. - |
  579. set -eo pipefail
  580. if [ "$T" = "iconv" ]; then
  581. source .travis-iconv-env.sh
  582. ./configure --enable-debug --enable-werror $C
  583. make && make examples
  584. make test-nonflaky
  585. fi
  586. - |
  587. set -eo pipefail
  588. if [ "$T" = "cmake" ]; then
  589. if [ $TRAVIS_OS_NAME = linux ]; then
  590. cmake -H. -Bbuild -DCURL_WERROR=ON && cmake --build build
  591. else
  592. cmake -H. -Bbuild -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON && cmake --build build
  593. fi
  594. fi
  595. - |
  596. set -eo pipefail
  597. if [ "$T" = "distcheck" ]; then
  598. # find BOM markers and exit if we do
  599. ! git grep `printf '\xef\xbb\xbf'`
  600. ./configure
  601. make
  602. ./maketgz 99.98.97
  603. # verify in-tree build - and install it
  604. (tar xf curl-99.98.97.tar.gz && \
  605. cd curl-99.98.97 && \
  606. ./configure --prefix=$HOME/temp && \
  607. make && \
  608. make TFLAGS=1 test && \
  609. make install)
  610. # basic check of the installed files
  611. bash scripts/installcheck.sh $HOME/temp
  612. rm -rf curl-99.98.97
  613. # verify out-of-tree build
  614. (tar xf curl-99.98.97.tar.gz && \
  615. touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc && \
  616. mkdir build && \
  617. cd build && \
  618. ../curl-99.98.97/configure && \
  619. make && \
  620. make TFLAGS='-p 1 1139' test)
  621. # verify cmake build
  622. rm -rf curl-99.98.97
  623. (tar xf curl-99.98.97.tar.gz && \
  624. cd curl-99.98.97 && \
  625. mkdir build && \
  626. cd build && \
  627. cmake .. && \
  628. make)
  629. fi
  630. - |
  631. set -eo pipefail
  632. if [ "$T" = "fuzzer" ]; then
  633. # Download the fuzzer to a temporary folder
  634. ./tests/fuzz/download_fuzzer.sh /tmp/curl_fuzzer
  635. export CURLSRC=$PWD
  636. # Run the mainline fuzzer test
  637. pushd /tmp/curl_fuzzer
  638. ./mainline.sh ${CURLSRC}
  639. popd
  640. fi
  641. - |
  642. if [ "$T" = "scan-build" ]; then
  643. scan-build ./configure --enable-debug --enable-werror $C
  644. scan-build --status-bugs make && scan-build --status-bugs make examples
  645. fi
  646. # whitelist branches to avoid testing feature branches twice (as branch and as pull request)
  647. branches:
  648. only:
  649. - master
  650. - /\/ci$/
  651. notifications:
  652. email: false