appveyor.yml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. #***************************************************************************
  2. # _ _ ____ _
  3. # Project ___| | | | _ \| |
  4. # / __| | | | |_) | |
  5. # | (__| |_| | _ <| |___
  6. # \___|\___/|_| \_\_____|
  7. #
  8. # Copyright (C) 1998 - 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. version: 7.50.0.{build}
  25. environment:
  26. matrix:
  27. # generated CMake-based Visual Studio Release builds
  28. - job_name: "CMake, VS2008, Release x86, Schannel"
  29. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  30. BUILD_SYSTEM: CMake
  31. PRJ_GEN: "Visual Studio 9 2008"
  32. PRJ_CFG: Release
  33. OPENSSL: OFF
  34. SCHANNEL: ON
  35. ENABLE_UNICODE: OFF
  36. HTTP_ONLY: OFF
  37. TESTING: OFF
  38. SHARED: ON
  39. DISABLED_TESTS: ""
  40. - job_name: "CMake, VS2022, Release x64, OpenSSL, WebSockets"
  41. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  42. BUILD_SYSTEM: CMake
  43. PRJ_GEN: "Visual Studio 17 2022"
  44. TARGET: "-A x64"
  45. PRJ_CFG: Release
  46. OPENSSL: ON
  47. SCHANNEL: OFF
  48. ENABLE_UNICODE: OFF
  49. HTTP_ONLY: OFF
  50. TESTING: OFF
  51. SHARED: ON
  52. DISABLED_TESTS: ""
  53. WEBSOCKETS: ON
  54. - job_name: "CMake, VS2022, Release arm64, Schannel, Static"
  55. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  56. BUILD_SYSTEM: CMake
  57. PRJ_GEN: "Visual Studio 17 2022"
  58. TARGET: "-A ARM64"
  59. PRJ_CFG: Release
  60. OPENSSL: OFF
  61. SCHANNEL: ON
  62. ENABLE_UNICODE: OFF
  63. HTTP_ONLY: OFF
  64. TESTING: OFF
  65. SHARED: OFF
  66. DISABLED_TESTS: ""
  67. # generated CMake-based Visual Studio Debug builds
  68. - job_name: "CMake, VS2010, Debug x64, no SSL, Static"
  69. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  70. BUILD_SYSTEM: CMake
  71. PRJ_GEN: "Visual Studio 10 2010 Win64"
  72. PRJ_CFG: Debug
  73. OPENSSL: OFF
  74. SCHANNEL: OFF
  75. ENABLE_UNICODE: OFF
  76. HTTP_ONLY: OFF
  77. TESTING: ON
  78. SHARED: OFF
  79. DISABLED_TESTS: "!1139 !1501 ~1056"
  80. ADD_PATH: "C:\\msys64\\usr\\bin"
  81. - job_name: "CMake, VS2022, Debug x64, Schannel, Static, Unicode"
  82. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  83. BUILD_SYSTEM: CMake
  84. PRJ_GEN: "Visual Studio 17 2022"
  85. TARGET: "-A x64"
  86. PRJ_CFG: Debug
  87. OPENSSL: OFF
  88. SCHANNEL: ON
  89. ENABLE_UNICODE: ON
  90. HTTP_ONLY: OFF
  91. TESTING: ON
  92. SHARED: OFF
  93. DISABLED_TESTS: "~571 !1139 !1501 ~1056"
  94. ADD_PATH: "C:\\msys64\\usr\\bin"
  95. - job_name: "CMake, VS2022, Debug x64, no SSL, Static"
  96. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  97. BUILD_SYSTEM: CMake
  98. PRJ_GEN: "Visual Studio 17 2022"
  99. TARGET: "-A x64"
  100. PRJ_CFG: Debug
  101. OPENSSL: OFF
  102. SCHANNEL: OFF
  103. ENABLE_UNICODE: OFF
  104. HTTP_ONLY: OFF
  105. TESTING: ON
  106. SHARED: OFF
  107. DISABLED_TESTS: "~571 !1139 !1501 ~1056"
  108. ADD_PATH: "C:\\msys64\\usr\\bin"
  109. - job_name: "CMake, VS2022, Debug x64, no SSL, Static, HTTP only"
  110. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  111. BUILD_SYSTEM: CMake
  112. PRJ_GEN: "Visual Studio 17 2022"
  113. TARGET: "-A x64"
  114. PRJ_CFG: Debug
  115. OPENSSL: OFF
  116. SCHANNEL: OFF
  117. ENABLE_UNICODE: OFF
  118. HTTP_ONLY: ON
  119. TESTING: ON
  120. SHARED: OFF
  121. DISABLED_TESTS: "!1139 !1501 ~1056"
  122. ADD_PATH: "C:\\msys64\\usr\\bin"
  123. # generated CMake-based MSYS Makefiles builds (mingw cross-compiling)
  124. - job_name: "CMake, mingw-w64, Debug x64, Schannel, Static, Unicode"
  125. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  126. BUILD_SYSTEM: CMake
  127. PRJ_GEN: "MSYS Makefiles"
  128. PRJ_CFG: Debug
  129. OPENSSL: OFF
  130. SCHANNEL: ON
  131. ENABLE_UNICODE: ON
  132. HTTP_ONLY: OFF
  133. TESTING: ON
  134. SHARED: OFF
  135. DISABLED_TESTS: "!1139 !1501 ~1056"
  136. ADD_PATH: "C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin;C:\\msys64\\usr\\bin"
  137. MSYS2_ARG_CONV_EXCL: "/*"
  138. BUILD_OPT: -k
  139. - job_name: "CMake, mingw-w64, Debug x64, Schannel, Static, Unicode"
  140. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  141. BUILD_SYSTEM: CMake
  142. PRJ_GEN: "MSYS Makefiles"
  143. PRJ_CFG: Debug
  144. OPENSSL: OFF
  145. SCHANNEL: ON
  146. ENABLE_UNICODE: ON
  147. HTTP_ONLY: OFF
  148. TESTING: ON
  149. SHARED: OFF
  150. DISABLED_TESTS: "!1139 !1501 ~1056"
  151. ADD_PATH: "C:\\mingw-w64\\x86_64-7.2.0-posix-seh-rt_v5-rev1\\mingw64\\bin;C:\\msys64\\usr\\bin"
  152. MSYS2_ARG_CONV_EXCL: "/*"
  153. BUILD_OPT: -k
  154. - job_name: "CMake, mingw-w64, Debug x86, Schannel, Static"
  155. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  156. BUILD_SYSTEM: CMake
  157. PRJ_GEN: "MSYS Makefiles"
  158. PRJ_CFG: Debug
  159. OPENSSL: OFF
  160. SCHANNEL: ON
  161. ENABLE_UNICODE: OFF
  162. HTTP_ONLY: OFF
  163. TESTING: ON
  164. SHARED: OFF
  165. DISABLED_TESTS: "!1139 !1501 ~1056"
  166. ADD_PATH: "C:\\mingw-w64\\i686-6.3.0-posix-dwarf-rt_v5-rev1\\mingw32\\bin;C:\\msys64\\usr\\bin"
  167. MSYS2_ARG_CONV_EXCL: "/*"
  168. BUILD_OPT: -k
  169. - job_name: "CMake, mingw, Debug x86, no SSL, Static"
  170. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  171. BUILD_SYSTEM: CMake
  172. PRJ_GEN: "MSYS Makefiles"
  173. PRJ_CFG: Debug
  174. OPENSSL: OFF
  175. SCHANNEL: OFF
  176. ENABLE_UNICODE: OFF
  177. HTTP_ONLY: OFF
  178. TESTING: ON
  179. SHARED: OFF
  180. DISABLED_TESTS: "!1139 !1501 ~1056"
  181. ADD_PATH: "C:\\MinGW\\bin;C:\\msys64\\usr\\bin"
  182. MSYS2_ARG_CONV_EXCL: "/*"
  183. BUILD_OPT: -k
  184. # winbuild-based builds
  185. - job_name: "winbuild, VS2015, Debug"
  186. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  187. BUILD_SYSTEM: winbuild_vs2015
  188. DEBUG: yes
  189. PATHPART: debug
  190. TESTING: OFF
  191. ENABLE_UNICODE: no
  192. - job_name: "winbuild, VS2015, Release"
  193. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  194. BUILD_SYSTEM: winbuild_vs2015
  195. DEBUG: no
  196. PATHPART: release
  197. TESTING: OFF
  198. ENABLE_UNICODE: no
  199. - job_name: "winbuild, VS2017, Debug"
  200. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  201. BUILD_SYSTEM: winbuild_vs2017
  202. DEBUG: yes
  203. PATHPART: debug
  204. TESTING: OFF
  205. ENABLE_UNICODE: no
  206. - job_name: "winbuild, VS2017, Release"
  207. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  208. BUILD_SYSTEM: winbuild_vs2017
  209. DEBUG: no
  210. PATHPART: release
  211. TESTING: OFF
  212. ENABLE_UNICODE: no
  213. - job_name: "winbuild, VS2015, Debug, Unicode"
  214. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  215. BUILD_SYSTEM: winbuild_vs2015
  216. DEBUG: yes
  217. PATHPART: debug
  218. TESTING: OFF
  219. ENABLE_UNICODE: yes
  220. - job_name: "winbuild, VS2015, Release, Unicode"
  221. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  222. BUILD_SYSTEM: winbuild_vs2015
  223. DEBUG: no
  224. PATHPART: release
  225. TESTING: OFF
  226. ENABLE_UNICODE: yes
  227. - job_name: "winbuild, VS2017, Debug, Unicode"
  228. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  229. BUILD_SYSTEM: winbuild_vs2017
  230. DEBUG: yes
  231. PATHPART: debug
  232. TESTING: OFF
  233. ENABLE_UNICODE: yes
  234. - job_name: "winbuild, VS2017, Release, Unicode"
  235. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  236. BUILD_SYSTEM: winbuild_vs2017
  237. DEBUG: no
  238. PATHPART: release
  239. TESTING: OFF
  240. ENABLE_UNICODE: yes
  241. # generated VisualStudioSolution-based builds
  242. - job_name: "VisualStudioSolution, VS2017, Debug"
  243. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  244. BUILD_SYSTEM: VisualStudioSolution
  245. PRJ_CFG: "DLL Debug - DLL Windows SSPI - DLL WinIDN"
  246. TESTING: OFF
  247. VC_VERSION: VC14.10
  248. # autotools-based builds (NOT mingw cross-compiling, but msys2 native)
  249. - job_name: "autotools, msys2, Debug, no Proxy, no SSL"
  250. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  251. BUILD_SYSTEM: autotools
  252. TESTING: ON
  253. DISABLED_TESTS: "!19 ~1056 !1233"
  254. ADD_PATH: "C:\\msys64\\usr\\bin"
  255. CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --disable-proxy --without-ssl --enable-websockets"
  256. - job_name: "autotools, msys2, Debug, no SSL"
  257. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  258. BUILD_SYSTEM: autotools
  259. TESTING: ON
  260. DISABLED_TESTS: "!19 !504 !704 !705 ~1056 !1233"
  261. ADD_PATH: "C:\\msys64\\usr\\bin"
  262. CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets"
  263. - job_name: "autotools, msys2, Release, no SSL"
  264. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  265. BUILD_SYSTEM: autotools
  266. TESTING: ON
  267. DISABLED_TESTS: "!19 !504 !704 !705 ~1056 !1233"
  268. ADD_PATH: "C:\\msys64\\usr\\bin"
  269. CONFIG_ARGS: "--enable-warnings --enable-werror --without-ssl --enable-websockets"
  270. # autotools-based Cygwin build
  271. - job_name: "autotools, cygwin, Debug, no SSL"
  272. APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022"
  273. BUILD_SYSTEM: autotools
  274. TESTING: ON
  275. DISABLED_TESTS: "~1056"
  276. ADD_PATH: "C:\\cygwin64\\bin"
  277. CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets"
  278. POSIX_PATH_PREFIX: "/cygdrive"
  279. install:
  280. - if not "%ADD_PATH%"=="" (
  281. set "PATH=%ADD_PATH%;%PATH%" )
  282. build_script:
  283. - if %BUILD_SYSTEM%==CMake (
  284. cmake .
  285. -G"%PRJ_GEN%"
  286. %TARGET%
  287. -DCURL_USE_OPENSSL=%OPENSSL%
  288. -DCURL_USE_SCHANNEL=%SCHANNEL%
  289. -DHTTP_ONLY=%HTTP_ONLY%
  290. -DBUILD_SHARED_LIBS=%SHARED%
  291. -DBUILD_TESTING=%TESTING%
  292. -DENABLE_WEBSOCKETS=%WEBSOCKETS%
  293. -DCURL_WERROR=ON
  294. -DENABLE_DEBUG=ON
  295. -DENABLE_UNICODE=%ENABLE_UNICODE%
  296. -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=""
  297. -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=""
  298. -DCMAKE_INSTALL_PREFIX="C:/CURL"
  299. -DCMAKE_BUILD_TYPE=%PRJ_CFG% &&
  300. cmake --build . --config %PRJ_CFG% --parallel 2 --clean-first -- %BUILD_OPT%
  301. ) else (
  302. if %BUILD_SYSTEM%==VisualStudioSolution (
  303. cd projects &&
  304. .\\generate.bat %VC_VERSION% &&
  305. msbuild.exe /p:Configuration="%PRJ_CFG%" "Windows\\%VC_VERSION%\\curl-all.sln"
  306. ) else (
  307. if %BUILD_SYSTEM%==winbuild_vs2015 (
  308. call buildconf.bat &&
  309. cd winbuild &&
  310. call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 &&
  311. call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 &&
  312. nmake /f Makefile.vc mode=dll VC=14 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% ENABLE_UNICODE=%ENABLE_UNICODE% &&
  313. ..\builds\libcurl-vc14-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V
  314. ) else (
  315. if %BUILD_SYSTEM%==winbuild_vs2017 (
  316. call buildconf.bat &&
  317. cd winbuild &&
  318. call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" &&
  319. nmake /f Makefile.vc mode=dll VC=14.10 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% ENABLE_UNICODE=%ENABLE_UNICODE% &&
  320. ..\builds\libcurl-vc14.10-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V
  321. ) else (
  322. if %BUILD_SYSTEM%==autotools (
  323. bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl && autoreconf -fi && ./configure %CONFIG_ARGS% && make V=1 && make V=1 examples && cd tests && make V=1"
  324. )))))
  325. - if %TESTING%==ON (
  326. if %BUILD_SYSTEM%==CMake (
  327. cmake --build . --config %PRJ_CFG% --parallel 2 --target testdeps
  328. ))
  329. test_script:
  330. - if exist C:/msys64/usr/bin/curl.exe (
  331. set ACURL=-ac %POSIX_PATH_PREFIX%/c/msys64/usr/bin/curl.exe )
  332. - if exist C:/Windows/System32/curl.exe (
  333. set ACURL=-ac %POSIX_PATH_PREFIX%/c/Windows/System32/curl.exe )
  334. - if %TESTING%==ON (
  335. if %BUILD_SYSTEM%==CMake (
  336. set TFLAGS=%ACURL% %DISABLED_TESTS% &&
  337. cmake --build . --config %PRJ_CFG% --target test-ci
  338. ) else (
  339. if %BUILD_SYSTEM%==autotools (
  340. bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl && make V=1 TFLAGS='%ACURL% %DISABLED_TESTS%' test-ci"
  341. ) else (
  342. bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl/tests && ./runtests.pl -a -p !flaky -r -rm %ACURL% %DISABLED_TESTS%"
  343. ))
  344. )
  345. # select branches to avoid testing feature branches twice (as branch and as pull request)
  346. branches:
  347. only:
  348. - master
  349. - /\/ci$/
  350. artifacts:
  351. - path: '**/curl.exe'
  352. name: curl
  353. - path: '**/*curl*.dll'
  354. name: libcurl