jobs.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585
  1. #***************************************************************************
  2. # _ _ ____ _
  3. # Project ___| | | | _ \| |
  4. # / __| | | | |_) | |
  5. # | (__| |_| | _ <| |___
  6. # \___|\___/|_| \_\_____|
  7. #
  8. # Copyright (C) 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
  9. #
  10. # This software is licensed as described in the file COPYING, which
  11. # you should have received as part of this distribution. The terms
  12. # are also available at https://curl.se/docs/copyright.html.
  13. #
  14. # You may opt to use, copy, modify, merge, publish, distribute and/or sell
  15. # copies of the Software, and permit persons to whom the Software is
  16. # furnished to do so, under the terms of the COPYING file.
  17. #
  18. # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  19. # KIND, either express or implied.
  20. #
  21. ###########################################################################
  22. ---
  23. - job:
  24. name: curl-base
  25. abstract: true
  26. pre-run: zuul.d/playbooks/pre.yaml
  27. run: zuul.d/playbooks/run.yaml
  28. post-run: zuul.d/playbooks/post.yaml
  29. nodeset: ubuntu-bionic
  30. timeout: 3600
  31. vars:
  32. curl_env:
  33. LD_LIBRARY_PATH: /usr/local/lib
  34. # NOTE(mnaser): Workaround to keep existing Travis scripts compatible
  35. TRAVIS_OS_NAME: linux
  36. - job:
  37. name: curl-normal-with-openssl-gssapi-libssh2-checksrc
  38. parent: curl-base
  39. vars:
  40. curl_env:
  41. T: normal
  42. C: --with-openssl --with-gssapi --with-libssh2
  43. CHECKSRC: 1
  44. curl_apt_packages:
  45. - krb5-user
  46. - libssh2-1-dev
  47. - libbrotli-dev
  48. - libzstd-dev
  49. - job:
  50. name: curl-normal-with-openssl-enable-ares
  51. parent: curl-base
  52. vars:
  53. curl_env:
  54. CC: gcc-8
  55. CXX: g++-8
  56. T: normal
  57. C: >-
  58. --with-openssl
  59. --enable-ares
  60. - job:
  61. name: curl-normal-with-openssl-disable-proxy
  62. parent: curl-base
  63. vars:
  64. curl_env:
  65. T: normal
  66. TFLAGS: "!2034 !2037 !2041"
  67. C: >-
  68. --with-openssl
  69. --disable-proxy
  70. - job:
  71. name: curl-normal-with-openssl-disable-verbose-notests
  72. parent: curl-base
  73. vars:
  74. curl_apt_packages:
  75. - libpsl-dev
  76. - libbrotli-dev
  77. - libzstd-dev
  78. curl_env:
  79. CC: gcc-8
  80. CXX: g++-8
  81. T: normal
  82. C: >-
  83. --with-openssl
  84. --disable-verbose
  85. CPPFLAGS: -Wno-variadic-macros
  86. NOTESTS: 1
  87. - job:
  88. name: curl-novalgrind-boringssl-with-openssl
  89. parent: curl-base
  90. vars:
  91. gimme_stable: true
  92. curl_env:
  93. CC: gcc-8
  94. CXX: g++-8
  95. T: novalgrind
  96. BORINGSSL: "yes"
  97. C: >-
  98. --with-openssl={{ ansible_user_dir }}/boringssl
  99. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/boringssl/lib:/usr/local/lib"
  100. - job:
  101. name: curl-novalgrind-boringssl-with-openssl-quiche
  102. parent: curl-base
  103. vars:
  104. curl_apt_packages:
  105. - libpsl-dev
  106. - libbrotli-dev
  107. - libzstd-dev
  108. curl_env:
  109. CC: gcc-8
  110. CXX: g++-8
  111. T: novalgrind
  112. QUICHE: "yes"
  113. C: >-
  114. --with-openssl={{ ansible_user_dir }}/quiche/deps/boringssl/src
  115. --with-quiche={{ ansible_user_dir }}/quiche/target/release
  116. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/quiche/target/release:/usr/local/lib"
  117. - job:
  118. name: curl-debug-rustls
  119. parent: curl-base
  120. vars:
  121. curl_apt_packages:
  122. - libpsl-dev
  123. - libbrotli-dev
  124. - libzstd-dev
  125. curl_env:
  126. T: debug-rustls
  127. RUSTLS_VERSION: v0.7.2
  128. LIBS: -lm
  129. C: >-
  130. --with-rustls={{ ansible_user_dir }}/crust
  131. - job:
  132. name: curl-debug-bearssl
  133. parent: curl-base
  134. vars:
  135. curl_apt_packages:
  136. - libpsl-dev
  137. - libbrotli-dev
  138. - libzstd-dev
  139. curl_env:
  140. T: debug-bearssl
  141. BEARSSL: "yes"
  142. C: >-
  143. --with-bearssl
  144. - job:
  145. name: curl-novalgrind-libressl
  146. parent: curl-base
  147. vars:
  148. curl_env:
  149. CC: gcc-8
  150. CXX: g++-8
  151. T: novalgrind
  152. LIBRESSL: "yes"
  153. C: >-
  154. --with-openssl={{ ansible_user_dir }}/libressl
  155. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/libressl/lib:/usr/local/lib"
  156. - job:
  157. name: curl-novalgrind-ngtcp2-with-openssl
  158. parent: curl-base
  159. vars:
  160. curl_apt_packages:
  161. - libpsl-dev
  162. - libbrotli-dev
  163. - libzstd-dev
  164. curl_env:
  165. CC: gcc-8
  166. CXX: g++-8
  167. T: novalgrind
  168. NGTCP2: "yes"
  169. C: >-
  170. --with-openssl={{ ansible_user_dir }}/ngbuild
  171. --with-ngtcp2={{ ansible_user_dir }}/ngbuild
  172. --with-nghttp3={{ ansible_user_dir }}/ngbuild
  173. NOTESTS:
  174. - job:
  175. name: curl-novalgrind-ngtcp2-gnutls
  176. parent: curl-base
  177. vars:
  178. curl_apt_packages:
  179. - libpsl-dev
  180. - libbrotli-dev
  181. - libzstd-dev
  182. - autogen
  183. - automake
  184. - autopoint
  185. - bison
  186. - gperf
  187. - libgmp-dev
  188. - libopts25-dev
  189. - libp11-kit-dev
  190. - libtasn1-6-dev
  191. - nettle-dev
  192. curl_env:
  193. CC: gcc-8
  194. CXX: g++-8
  195. T: novalgrind
  196. NGTCP2: "yes"
  197. GNUTLS: "yes"
  198. C: >-
  199. PKG_CONFIG_PATH={{ ansible_user_dir }}/ngbuild
  200. --with-gnutls={{ ansible_user_dir }}/ngbuild
  201. --with-ngtcp2={{ ansible_user_dir }}/ngbuild
  202. --with-nghttp3={{ ansible_user_dir }}/ngbuild
  203. NOTESTS:
  204. - job:
  205. name: curl-debug-wolfssl
  206. parent: curl-base
  207. vars:
  208. curl_apt_packages:
  209. - libpsl-dev
  210. - libbrotli-dev
  211. - libzstd-dev
  212. curl_env:
  213. CC: gcc-8
  214. CXX: g++-8
  215. T: debug-wolfssl
  216. WOLFSSL: "yes"
  217. C: >-
  218. --with-wolfssl
  219. - job:
  220. name: curl-debug-openssl3
  221. parent: curl-base
  222. vars:
  223. curl_apt_packages:
  224. - libpsl-dev
  225. - libbrotli-dev
  226. - libzstd-dev
  227. curl_env:
  228. CC: gcc-8
  229. CXX: g++-8
  230. T: debug
  231. OPENSSL3: "yes"
  232. C: >-
  233. --with-openssl={{ ansible_user_dir }}/openssl3
  234. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/openssl3/lib64:/usr/local/lib"
  235. TFLAGS: https ftps
  236. - job:
  237. name: curl-debug-mbedtls3
  238. parent: curl-base
  239. vars:
  240. curl_apt_packages:
  241. - libpsl-dev
  242. - libbrotli-dev
  243. - libzstd-dev
  244. curl_env:
  245. CC: gcc-8
  246. CXX: g++-8
  247. T: debug
  248. MBEDTLS3: "yes"
  249. C: >-
  250. --with-mbedtls={{ ansible_user_dir }}/mbedtls3
  251. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/mbedtls3/lib:/usr/local/lib"
  252. TFLAGS: https ftps
  253. - job:
  254. name: curl-debug-mesalink
  255. parent: curl-base
  256. vars:
  257. curl_apt_packages:
  258. - libpsl-dev
  259. - libbrotli-dev
  260. - libzstd-dev
  261. curl_env:
  262. CC: gcc-8
  263. CXX: g++-8
  264. T: debug-mesalink
  265. MESALINK: "yes"
  266. C: >-
  267. --with-mesalink
  268. - job:
  269. name: curl-debug-clang-with-openssl
  270. parent: curl-base
  271. vars:
  272. curl_apt_packages:
  273. - clang-9
  274. - libpsl-dev
  275. - libbrotli-dev
  276. - libzstd-dev
  277. curl_env:
  278. CC: clang-9
  279. CXX: clang++-9
  280. T: debug
  281. C: >-
  282. --with-openssl
  283. - job:
  284. name: curl-debug-clang-disable-alt-svc-with-openssl
  285. parent: curl-base
  286. vars:
  287. curl_apt_packages:
  288. - clang-9
  289. - libpsl-dev
  290. - libbrotli-dev
  291. - libzstd-dev
  292. curl_env:
  293. CC: clang-9
  294. CXX: clang++-9
  295. T: debug
  296. C: >-
  297. --with-openssl
  298. --disable-alt-svc
  299. - job:
  300. name: curl-debug-clang-with-mbedtls
  301. parent: curl-base
  302. vars:
  303. curl_apt_packages:
  304. - clang-9
  305. - libpsl-dev
  306. - libbrotli-dev
  307. - libzstd-dev
  308. - libmbedtls-dev
  309. curl_env:
  310. CC: clang-9
  311. CXX: clang++-9
  312. T: debug
  313. C: >-
  314. --with-mbedtls
  315. - job:
  316. name: curl-debug-clang-with-gnutls
  317. parent: curl-base
  318. vars:
  319. curl_apt_packages:
  320. - clang-9
  321. - libpsl-dev
  322. - libbrotli-dev
  323. - libzstd-dev
  324. - libgnutls28-dev
  325. curl_env:
  326. CC: clang-9
  327. CXX: clang++-9
  328. T: debug
  329. C: >-
  330. --with-gnutls
  331. - job:
  332. name: curl-debug-clang-with-nss
  333. parent: curl-base
  334. vars:
  335. curl_apt_packages:
  336. - clang-9
  337. - libpsl-dev
  338. - libbrotli-dev
  339. - libzstd-dev
  340. - libnss3-dev
  341. curl_env:
  342. CC: clang-9
  343. CXX: clang++-9
  344. T: debug
  345. C: >-
  346. --with-nss
  347. CPPFLAGS: -isystem /usr/include/nss
  348. NOTESTS: 1
  349. - job:
  350. name: curl-iconv-with-openssl
  351. parent: curl-base
  352. vars:
  353. curl_env:
  354. CC: gcc-8
  355. CXX: g++-8
  356. T: iconv
  357. C: >-
  358. --with-openssl
  359. - job:
  360. name: curl-cmake-boringssl-quiche
  361. parent: curl-base
  362. vars:
  363. gimme_stable: true
  364. curl_apt_packages:
  365. - libpsl-dev
  366. - libbrotli-dev
  367. - libzstd-dev
  368. curl_env:
  369. BORINGSSL: "yes"
  370. QUICHE: "yes"
  371. CC: gcc-8
  372. CXX: g++-8
  373. T: cmake
  374. C: >-
  375. -GNinja
  376. -DUSE_QUICHE=1
  377. -DOPENSSL_ROOT_DIR={{ ansible_user_dir }}/boringssl
  378. -DCURL_BROTLI=1
  379. -DCURL_ZSTD=1
  380. TFLAGS: https ftps
  381. PKG_CONFIG_PATH: "{{ ansible_user_dir }}/quiche/target/release"
  382. - job:
  383. name: curl-cmake-ngtcp2
  384. parent: curl-base
  385. vars:
  386. curl_apt_packages:
  387. - clang-9
  388. - libpsl-dev
  389. - libbrotli-dev
  390. - libzstd-dev
  391. - libnss3-dev
  392. curl_env:
  393. NGTCP2: "yes"
  394. CC: clang-9
  395. CXX: clang++-9
  396. T: cmake
  397. C: >-
  398. -GNinja
  399. -DUSE_NGTCP2=ON
  400. -DCURL_BROTLI=1
  401. -DCURL_ZSTD=1
  402. PKG_CONFIG_PATH: "{{ ansible_user_dir }}/ngbuild/lib/pkgconfig"
  403. - job:
  404. name: curl-torture
  405. parent: curl-base
  406. vars:
  407. curl_apt_packages:
  408. - lcov
  409. - libpsl-dev
  410. - libssl-dev
  411. - libbrotli-dev
  412. - libzstd-dev
  413. - libssh2-1-dev
  414. curl_env:
  415. CC: gcc-8
  416. CXX: g++-8
  417. T: torture
  418. - job:
  419. name: curl-events
  420. parent: curl-base
  421. vars:
  422. curl_apt_packages:
  423. - lcov
  424. - libpsl-dev
  425. - libssl-dev
  426. - libbrotli-dev
  427. - libzstd-dev
  428. - libssh2-1-dev
  429. curl_env:
  430. CC: gcc-8
  431. CXX: g++-8
  432. T: events
  433. - job:
  434. name: curl-distcheck
  435. parent: curl-base
  436. vars:
  437. curl_apt_packages:
  438. - libpsl-dev
  439. - libbrotli-dev
  440. - libzstd-dev
  441. curl_env:
  442. CC: gcc-8
  443. CXX: g++-8
  444. T: distcheck
  445. - job:
  446. name: curl-fuzzer
  447. parent: curl-base
  448. vars:
  449. curl_apt_packages:
  450. - clang
  451. - clang-9
  452. - libpsl-dev
  453. - libbrotli-dev
  454. - libzstd-dev
  455. curl_env:
  456. CC: clang-9
  457. CXX: clang++-9
  458. T: fuzzer
  459. - job:
  460. name: curl-tidy
  461. parent: curl-base
  462. vars:
  463. curl_apt_packages:
  464. - clang
  465. - clang-tidy
  466. - clang-9
  467. - clang-tidy-9
  468. - libpsl-dev
  469. - libbrotli-dev
  470. - libzstd-dev
  471. curl_env:
  472. CC: clang-9
  473. CXX: clang++-9
  474. T: tidy
  475. C: --with-openssl
  476. - job:
  477. name: curl-scan-build
  478. parent: curl-base
  479. vars:
  480. curl_apt_packages:
  481. - clang-tools-10
  482. - clang-9
  483. - libssl-dev
  484. - libssh2-1-dev
  485. - libpsl-dev
  486. - libbrotli-dev
  487. - libzstd-dev
  488. curl_env:
  489. CC: clang-9
  490. CXX: clang++-9
  491. T: scan-build
  492. C: >-
  493. --with-openssl
  494. --with-libssh2
  495. - job:
  496. name: curl-debug-clang-with-openssl-dl-ubsan
  497. parent: curl-base
  498. vars:
  499. curl_apt_packages:
  500. - clang-9
  501. - libpsl-dev
  502. - libbrotli-dev
  503. - libzstd-dev
  504. curl_env:
  505. CC: clang-9
  506. CXX: clang++-9
  507. T: debug
  508. CFLAGS: >-
  509. -fsanitize=address,undefined,signed-integer-overflow
  510. -fno-sanitize-recover=undefined,integer
  511. -Wformat
  512. -Werror=format-security
  513. -Werror=array-bounds
  514. -g
  515. LDFLAGS: >-
  516. -fsanitize=address,undefined
  517. -fno-sanitize-recover=undefined,integer
  518. LIBS: -ldl -lubsan
  519. TFLAGS: -n
  520. C: --with-openssl
  521. - project:
  522. check:
  523. jobs:
  524. - curl-normal-with-openssl-gssapi-libssh2-checksrc
  525. - curl-normal-with-openssl-enable-ares
  526. - curl-normal-with-openssl-disable-proxy
  527. - curl-normal-with-openssl-disable-verbose-notests
  528. - curl-novalgrind-boringssl-with-openssl
  529. - curl-novalgrind-boringssl-with-openssl-quiche
  530. - curl-debug-rustls
  531. - curl-debug-bearssl
  532. - curl-novalgrind-libressl
  533. - curl-novalgrind-ngtcp2-with-openssl
  534. - curl-novalgrind-ngtcp2-gnutls
  535. - curl-debug-wolfssl
  536. - curl-debug-openssl3
  537. - curl-debug-mbedtls3
  538. - curl-debug-mesalink
  539. - curl-debug-clang-with-openssl
  540. - curl-debug-clang-disable-alt-svc-with-openssl
  541. - curl-debug-clang-with-mbedtls
  542. - curl-debug-clang-with-gnutls
  543. - curl-debug-clang-with-nss
  544. - curl-iconv-with-openssl
  545. - curl-cmake-boringssl-quiche
  546. - curl-cmake-ngtcp2
  547. - curl-torture
  548. - curl-events
  549. - curl-distcheck
  550. - curl-fuzzer
  551. - curl-tidy
  552. - curl-scan-build
  553. - curl-debug-clang-with-openssl-dl-ubsan
  554. ...