.azure-pipelines.yml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. #***************************************************************************
  2. # _ _ ____ _
  3. # Project ___| | | | _ \| |
  4. # / __| | | | |_) | |
  5. # | (__| |_| | _ <| |___
  6. # \___|\___/|_| \_\_____|
  7. #
  8. # Copyright (C) 1998 - 2020, 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.haxx.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. # Starter pipeline
  23. # Start with a minimal pipeline that you can customize to build and deploy your code.
  24. # Add steps that build, run tests, deploy, and more:
  25. # https://aka.ms/yaml
  26. trigger:
  27. branches:
  28. include:
  29. - 'master'
  30. - '*/ci'
  31. pr:
  32. branches:
  33. include:
  34. - 'master'
  35. stages:
  36. ##########################################
  37. ### Linux jobs first
  38. ##########################################
  39. - stage: linux
  40. dependsOn: []
  41. jobs:
  42. - job: vanilla
  43. displayName: ubuntu default
  44. timeoutInMinutes: 20
  45. pool:
  46. vmImage: 'ubuntu-latest'
  47. steps:
  48. - script: sudo apt install stunnel4 python-impacket
  49. displayName: 'apt install'
  50. - script: ./buildconf && ./configure --enable-debug --enable-werror
  51. displayName: 'configure debug'
  52. - script: make
  53. displayName: 'make'
  54. - script: make test-nonflaky
  55. displayName: 'test'
  56. env:
  57. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  58. TFLAGS: ""
  59. - job: disable_ipv6
  60. displayName: ubuntu w/o IPv6
  61. timeoutInMinutes: 20
  62. pool:
  63. vmImage: 'ubuntu-latest'
  64. steps:
  65. - script: sudo apt install stunnel4 python-impacket
  66. displayName: 'apt install'
  67. - script: ./buildconf && ./configure --disable-ipv6
  68. displayName: 'configure disable ipv6'
  69. - script: make
  70. displayName: 'make'
  71. - script: make test-nonflaky
  72. displayName: 'test'
  73. env:
  74. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  75. TFLAGS: ""
  76. - job: disable_http_smtp_imap
  77. displayName: ubuntu w/o HTTP/SMTP/IMAP
  78. timeoutInMinutes: 20
  79. pool:
  80. vmImage: 'ubuntu-latest'
  81. steps:
  82. - script: sudo apt install stunnel4 python-impacket
  83. displayName: 'apt install'
  84. - script: ./buildconf && ./configure --disable-http --disable-smtp --disable-imap
  85. displayName: 'configure disable http/smtp/imap'
  86. - script: make
  87. displayName: 'make'
  88. - script: make test-nonflaky
  89. displayName: 'test'
  90. env:
  91. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  92. - job: disable_thredres
  93. displayName: ubuntu sync resolver
  94. timeoutInMinutes: 20
  95. pool:
  96. vmImage: 'ubuntu-latest'
  97. steps:
  98. - script: sudo apt install stunnel4 python-impacket
  99. displayName: 'apt install'
  100. - script: ./buildconf && ./configure --disable-threaded-resolver
  101. displayName: 'configure disable threaded-resolver'
  102. - script: make
  103. displayName: 'make'
  104. - script: make test-nonflaky
  105. displayName: 'test'
  106. env:
  107. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  108. TFLAGS: ""
  109. - job: http_only
  110. displayName: ubuntu HTTP only
  111. timeoutInMinutes: 20
  112. pool:
  113. vmImage: 'ubuntu-latest'
  114. steps:
  115. - script: sudo apt install stunnel4 python-impacket
  116. displayName: 'apt install'
  117. - script: ./buildconf && ./configure --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
  118. displayName: 'configure disable non-http'
  119. - script: make
  120. displayName: 'make'
  121. - script: make test-nonflaky
  122. displayName: 'test'
  123. env:
  124. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  125. TFLAGS: ""
  126. - stage: linux_torture
  127. dependsOn: linux
  128. jobs:
  129. - job: torture
  130. displayName: ubuntu torture tests
  131. timeoutInMinutes: 60
  132. pool:
  133. vmImage: 'ubuntu-latest'
  134. steps:
  135. - script: sudo apt install stunnel4 python-impacket libnghttp2-dev
  136. displayName: 'apt install'
  137. - script: ./buildconf && ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-alt-svc
  138. displayName: 'configure torture'
  139. - script: make
  140. displayName: 'make'
  141. - script: make test-nonflaky
  142. displayName: 'torture test'
  143. env:
  144. TFLAGS: "-n -t --shallow=40 !FTP"
  145. ##########################################
  146. ### Windows jobs below
  147. ##########################################
  148. - stage: windows
  149. dependsOn: []
  150. variables:
  151. agent.preferPowerShellOnContainers: true
  152. jobs:
  153. - job: windows_msys2_mingw32_debug_openssl
  154. displayName: msys2 mingw32 debug openssl
  155. timeoutInMinutes: 90
  156. pool:
  157. vmImage: 'windows-2019'
  158. container:
  159. image: mback2k/curl-docker-winbuildenv-msys2-mingw32:ltsc2019
  160. env:
  161. MSYSTEM: MINGW32
  162. MSYS2_PATH_TYPE: inherit
  163. steps:
  164. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --enable-debug --enable-werror"
  165. displayName: 'configure debug'
  166. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make"
  167. displayName: 'make'
  168. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  169. displayName: 'test'
  170. env:
  171. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  172. TFLAGS: "~1056 ~1299"
  173. - job: windows_msys2_mingw64_debug_openssl
  174. displayName: msys2 mingw64 debug openssl
  175. timeoutInMinutes: 90
  176. pool:
  177. vmImage: 'windows-2019'
  178. container:
  179. image: mback2k/curl-docker-winbuildenv-msys2-mingw64:ltsc2019
  180. env:
  181. MSYSTEM: MINGW64
  182. MSYS2_PATH_TYPE: inherit
  183. steps:
  184. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --enable-debug --enable-werror"
  185. displayName: 'configure debug'
  186. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make"
  187. displayName: 'make'
  188. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  189. displayName: 'test'
  190. env:
  191. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  192. TFLAGS: "~1056 ~1299"
  193. - job: windows_msys1_mingw_debug_openssl
  194. displayName: msys1 mingw debug openssl
  195. timeoutInMinutes: 90
  196. pool:
  197. vmImage: 'windows-2019'
  198. container:
  199. image: mback2k/curl-docker-winbuildenv-msys1-mingw:ltsc2019
  200. steps:
  201. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=i686-pc-mingw32 --build=i686-pc-mingw32 --prefix=/mingw --enable-debug"
  202. displayName: 'configure debug'
  203. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make"
  204. displayName: 'make'
  205. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  206. displayName: 'test'
  207. env:
  208. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  209. TFLAGS: "~203 ~1056 ~1143"
  210. - job: windows_msys1_mingw32_debug_openssl
  211. displayName: msys1 mingw32 debug openssl
  212. timeoutInMinutes: 90
  213. pool:
  214. vmImage: 'windows-2019'
  215. container:
  216. image: mback2k/curl-docker-winbuildenv-msys1-mingw32:ltsc2019
  217. steps:
  218. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --without-zlib --enable-mqtt"
  219. displayName: 'configure debug without zlib'
  220. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make"
  221. displayName: 'make'
  222. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  223. displayName: 'test'
  224. env:
  225. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  226. TFLAGS: "~203 ~1056 ~1143 ~1299"
  227. - job: windows_msys1_mingw64_debug_openssl
  228. displayName: msys1 mingw64 debug openssl
  229. timeoutInMinutes: 90
  230. pool:
  231. vmImage: 'windows-2019'
  232. container:
  233. image: mback2k/curl-docker-winbuildenv-msys1-mingw64:ltsc2019
  234. steps:
  235. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --without-zlib"
  236. displayName: 'configure debug without zlib'
  237. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make"
  238. displayName: 'make'
  239. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  240. displayName: 'test'
  241. env:
  242. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  243. TFLAGS: "~203 ~1056 ~1143 ~1299"
  244. - job: windows_msys2_mingw32_debug_schannel
  245. displayName: msys2 mingw32 debug schannel
  246. timeoutInMinutes: 90
  247. pool:
  248. vmImage: 'windows-2019'
  249. container:
  250. image: mback2k/curl-docker-winbuildenv-msys2-mingw32:ltsc2019
  251. env:
  252. MSYSTEM: MINGW32
  253. MSYS2_PATH_TYPE: inherit
  254. steps:
  255. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --enable-debug --enable-werror --enable-sspi --without-ssl --with-schannel --with-winidn"
  256. displayName: 'configure debug with sspi/schannel/winidn'
  257. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make"
  258. displayName: 'make'
  259. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  260. displayName: 'test'
  261. env:
  262. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  263. TFLAGS: "~165 ~310 ~1013 ~1056 ~1299 ~1448 ~2034 ~2037 ~2041 ~2046 ~2047 ~3000 ~3001"
  264. - job: windows_msys2_mingw64_debug_schannel
  265. displayName: msys2 mingw64 debug schannel
  266. timeoutInMinutes: 90
  267. pool:
  268. vmImage: 'windows-2019'
  269. container:
  270. image: mback2k/curl-docker-winbuildenv-msys2-mingw64:ltsc2019
  271. env:
  272. MSYSTEM: MINGW64
  273. MSYS2_PATH_TYPE: inherit
  274. steps:
  275. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --enable-debug --enable-werror --enable-sspi --without-ssl --with-schannel --with-winidn"
  276. displayName: 'configure debug with sspi/schannel/winidn'
  277. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make"
  278. displayName: 'make'
  279. - script: C:\msys64\usr\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  280. displayName: 'test'
  281. env:
  282. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  283. TFLAGS: "~165 ~310 ~1013 ~1056 ~1299 ~1448 ~2034 ~2037 ~2041 ~2046 ~2047 ~3000 ~3001"
  284. - job: windows_msys1_mingw_debug_schannel
  285. displayName: msys1 mingw debug schannel
  286. timeoutInMinutes: 90
  287. pool:
  288. vmImage: 'windows-2019'
  289. container:
  290. image: mback2k/curl-docker-winbuildenv-msys1-mingw:ltsc2019
  291. steps:
  292. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=i686-pc-mingw32 --build=i686-pc-mingw32 --prefix=/mingw --enable-debug --enable-sspi --without-ssl --with-schannel --with-winidn"
  293. displayName: 'configure debug with sspi/schannel/winidn'
  294. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make"
  295. displayName: 'make'
  296. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  297. displayName: 'test'
  298. env:
  299. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  300. TFLAGS: "~203 ~305 ~310 ~311 ~312 ~313 ~404 ~1013 ~1056 ~1143 ~2034 ~2035 ~2037 ~2038 ~2041 ~2042 ~2048 ~3000 ~3001"
  301. - job: windows_msys1_mingw32_debug_schannel
  302. displayName: msys1 mingw32 debug schannel
  303. timeoutInMinutes: 90
  304. pool:
  305. vmImage: 'windows-2019'
  306. container:
  307. image: mback2k/curl-docker-winbuildenv-msys1-mingw32:ltsc2019
  308. steps:
  309. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --without-ssl --with-schannel --with-winidn --without-zlib"
  310. displayName: 'configure debug with sspi/schannel/winidn without zlib'
  311. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make"
  312. displayName: 'make'
  313. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  314. displayName: 'test'
  315. env:
  316. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  317. TFLAGS: "~203 ~310 ~1013 ~1056 ~1143 ~1299 ~2034 ~2037 ~2041 ~3000 ~3001"
  318. - job: windows_msys1_mingw64_debug_schannel
  319. displayName: msys1 mingw64 debug schannel
  320. timeoutInMinutes: 90
  321. pool:
  322. vmImage: 'windows-2019'
  323. container:
  324. image: mback2k/curl-docker-winbuildenv-msys1-mingw64:ltsc2019
  325. steps:
  326. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && ./buildconf && ./configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --without-ssl --with-schannel --with-winidn --without-zlib"
  327. displayName: 'configure debug with sspi/schannel/winidn without zlib'
  328. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make"
  329. displayName: 'make'
  330. - script: C:\MinGW\msys\1.0\bin\sh -l -c "cd $(echo '%cd%') && make test-nonflaky"
  331. displayName: 'test'
  332. env:
  333. AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
  334. TFLAGS: "~203 ~310 ~1013 ~1056 ~1143 ~1299 ~2034 ~2037 ~2041 ~3000 ~3001"