2
0

jobs.yaml 8.2 KB

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