appveyor.yml 12 KB

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