jobs.yaml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. #***************************************************************************
  2. # _ _ ____ _
  3. # Project ___| | | | _ \| |
  4. # / __| | | | |_) | |
  5. # | (__| |_| | _ <| |___
  6. # \___|\___/|_| \_\_____|
  7. #
  8. # Copyright (C) 2021 - 2022, 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. # The results of each of these jobs can be found at
  23. # https://curl.zuul.vexxhost.dev/builds. As of November 2021 they are not being
  24. # propagated to the Github "checks" UI, you need to check for them manually.
  25. ---
  26. - job:
  27. name: curl-base
  28. abstract: true
  29. pre-run: zuul.d/playbooks/pre.yaml
  30. run: zuul.d/playbooks/run.yaml
  31. post-run: zuul.d/playbooks/post.yaml
  32. nodeset: ubuntu-bionic
  33. timeout: 3600
  34. vars:
  35. curl_env:
  36. LD_LIBRARY_PATH: /usr/local/lib
  37. # NOTE(mnaser): Workaround to keep existing Travis scripts compatible
  38. TRAVIS_OS_NAME: linux
  39. - job:
  40. name: curl-normal-with-openssl-gssapi-libssh2-checksrc
  41. parent: curl-base
  42. vars:
  43. curl_env:
  44. T: normal
  45. C: --with-openssl --with-gssapi --with-libssh2
  46. CHECKSRC: 1
  47. curl_apt_packages:
  48. - krb5-user
  49. - libssh2-1-dev
  50. - libbrotli-dev
  51. - libzstd-dev
  52. - job:
  53. name: curl-novalgrind-boringssl-with-openssl
  54. parent: curl-base
  55. vars:
  56. gimme_stable: true
  57. curl_env:
  58. CC: gcc-8
  59. CXX: g++-8
  60. T: novalgrind
  61. BORINGSSL: "yes"
  62. C: >-
  63. --with-openssl={{ ansible_user_dir }}/boringssl
  64. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/boringssl/lib:/usr/local/lib"
  65. - job:
  66. name: curl-novalgrind-boringssl-with-openssl-quiche
  67. parent: curl-base
  68. vars:
  69. curl_apt_packages:
  70. - libpsl-dev
  71. - libbrotli-dev
  72. - libzstd-dev
  73. curl_env:
  74. CC: gcc-8
  75. CXX: g++-8
  76. T: novalgrind
  77. QUICHE: "yes"
  78. C: >-
  79. --with-openssl={{ ansible_user_dir }}/quiche/quiche/deps/boringssl/src
  80. --with-quiche={{ ansible_user_dir }}/quiche/target/release
  81. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/quiche/target/release:/usr/local/lib"
  82. - job:
  83. name: curl-novalgrind-libressl
  84. parent: curl-base
  85. vars:
  86. curl_env:
  87. CC: gcc-8
  88. CXX: g++-8
  89. T: novalgrind
  90. LIBRESSL: "yes"
  91. C: >-
  92. --with-openssl={{ ansible_user_dir }}/libressl
  93. LD_LIBRARY_PATH: "{{ ansible_user_dir }}/libressl/lib:/usr/local/lib"
  94. - job:
  95. name: curl-novalgrind-ngtcp2-with-openssl
  96. parent: curl-base
  97. vars:
  98. curl_apt_packages:
  99. - libpsl-dev
  100. - libbrotli-dev
  101. - libzstd-dev
  102. curl_env:
  103. CC: gcc-8
  104. CXX: g++-8
  105. T: novalgrind
  106. NGTCP2: "yes"
  107. C: >-
  108. --with-openssl={{ ansible_user_dir }}/ngbuild
  109. --with-ngtcp2={{ ansible_user_dir }}/ngbuild
  110. --with-nghttp3={{ ansible_user_dir }}/ngbuild
  111. NOTESTS:
  112. - job:
  113. name: curl-novalgrind-ngtcp2-gnutls
  114. parent: curl-base
  115. vars:
  116. curl_apt_packages:
  117. - libpsl-dev
  118. - libbrotli-dev
  119. - libzstd-dev
  120. - zlib1g-dev
  121. - autogen
  122. - automake
  123. - autopoint
  124. - bison
  125. - gperf
  126. - libgmp-dev
  127. - libopts25-dev
  128. - libp11-kit-dev
  129. - libtasn1-6-dev
  130. - nettle-dev
  131. - gtk-doc-tools
  132. - gnulib
  133. - libtasn1-bin
  134. curl_env:
  135. CC: gcc-8
  136. CXX: g++-8
  137. T: novalgrind
  138. NGTCP2: "yes"
  139. GNUTLS: "yes"
  140. C: >-
  141. PKG_CONFIG_PATH={{ ansible_user_dir }}/ngbuild
  142. --with-gnutls={{ ansible_user_dir }}/ngbuild
  143. --with-ngtcp2={{ ansible_user_dir }}/ngbuild
  144. --with-nghttp3={{ ansible_user_dir }}/ngbuild
  145. NOTESTS:
  146. - job:
  147. name: curl-debug-clang-disable-alt-svc-with-openssl
  148. parent: curl-base
  149. vars:
  150. curl_apt_packages:
  151. - clang-9
  152. - libpsl-dev
  153. - libbrotli-dev
  154. - libzstd-dev
  155. curl_env:
  156. CC: clang-9
  157. CXX: clang++-9
  158. T: debug
  159. C: >-
  160. --with-openssl
  161. --disable-alt-svc
  162. - job:
  163. name: curl-debug-clang-with-gnutls
  164. parent: curl-base
  165. vars:
  166. curl_apt_packages:
  167. - clang-9
  168. - libpsl-dev
  169. - libbrotli-dev
  170. - libzstd-dev
  171. - libgnutls28-dev
  172. curl_env:
  173. CC: clang-9
  174. CXX: clang++-9
  175. T: debug
  176. C: >-
  177. --with-gnutls
  178. - job:
  179. name: curl-cmake-boringssl-quiche
  180. parent: curl-base
  181. vars:
  182. gimme_stable: true
  183. curl_apt_packages:
  184. - libpsl-dev
  185. - libbrotli-dev
  186. - libzstd-dev
  187. curl_env:
  188. BORINGSSL: "yes"
  189. QUICHE: "yes"
  190. CC: gcc-8
  191. CXX: g++-8
  192. T: cmake
  193. C: >-
  194. -GNinja
  195. -DUSE_QUICHE=1
  196. -DOPENSSL_ROOT_DIR={{ ansible_user_dir }}/boringssl
  197. -DCURL_BROTLI=1
  198. -DCURL_ZSTD=1
  199. TFLAGS: https ftps
  200. PKG_CONFIG_PATH: "{{ ansible_user_dir }}/quiche/target/release"
  201. - job:
  202. name: curl-cmake-ngtcp2
  203. parent: curl-base
  204. vars:
  205. curl_apt_packages:
  206. - clang-9
  207. - libpsl-dev
  208. - libbrotli-dev
  209. - libzstd-dev
  210. - libnss3-dev
  211. curl_env:
  212. NGTCP2: "yes"
  213. CC: clang-9
  214. CXX: clang++-9
  215. T: cmake
  216. C: >-
  217. -GNinja
  218. -DUSE_NGTCP2=ON
  219. -DCURL_BROTLI=1
  220. -DCURL_ZSTD=1
  221. PKG_CONFIG_PATH: "{{ ansible_user_dir }}/ngbuild/lib/pkgconfig"
  222. - job:
  223. name: curl-torture
  224. parent: curl-base
  225. vars:
  226. curl_apt_packages:
  227. - lcov
  228. - libpsl-dev
  229. - libssl-dev
  230. - libbrotli-dev
  231. - libzstd-dev
  232. - libssh2-1-dev
  233. curl_env:
  234. CC: gcc-8
  235. CXX: g++-8
  236. T: torture
  237. - job:
  238. name: curl-fuzzer
  239. parent: curl-base
  240. vars:
  241. curl_apt_packages:
  242. - clang
  243. - clang-9
  244. - libpsl-dev
  245. - libbrotli-dev
  246. - libzstd-dev
  247. curl_env:
  248. CC: clang-9
  249. CXX: clang++-9
  250. T: fuzzer
  251. - job:
  252. name: curl-tidy
  253. parent: curl-base
  254. vars:
  255. curl_apt_packages:
  256. - clang
  257. - clang-tidy
  258. - clang-9
  259. - clang-tidy-9
  260. - libpsl-dev
  261. - libbrotli-dev
  262. - libzstd-dev
  263. curl_env:
  264. CC: clang-9
  265. CXX: clang++-9
  266. T: tidy
  267. C: --with-openssl
  268. - job:
  269. name: curl-debug-clang-with-openssl-dl-ubsan
  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. CFLAGS: >-
  282. -fsanitize=address,undefined,signed-integer-overflow
  283. -fno-sanitize-recover=undefined,integer
  284. -Wformat
  285. -Werror=format-security
  286. -Werror=array-bounds
  287. -g
  288. LDFLAGS: >-
  289. -fsanitize=address,undefined
  290. -fno-sanitize-recover=undefined,integer
  291. LIBS: -ldl -lubsan
  292. TFLAGS: -n
  293. C: --with-openssl
  294. - project:
  295. check:
  296. jobs:
  297. - curl-normal-with-openssl-gssapi-libssh2-checksrc
  298. - curl-novalgrind-boringssl-with-openssl
  299. - curl-novalgrind-boringssl-with-openssl-quiche
  300. - curl-novalgrind-libressl
  301. - curl-novalgrind-ngtcp2-with-openssl
  302. - curl-novalgrind-ngtcp2-gnutls
  303. - curl-debug-clang-disable-alt-svc-with-openssl
  304. - curl-debug-clang-with-gnutls
  305. - curl-cmake-boringssl-quiche
  306. - curl-cmake-ngtcp2
  307. - curl-torture
  308. - curl-fuzzer
  309. - curl-tidy
  310. - curl-debug-clang-with-openssl-dl-ubsan
  311. ...