appveyor.yml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  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. 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. WINSSL: ON
  32. HTTP_ONLY: OFF
  33. TESTING: OFF
  34. SHARED: ON
  35. DISABLED_TESTS: ""
  36. COMPILER_PATH: ""
  37. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  38. BUILD_SYSTEM: CMake
  39. PRJ_GEN: "Visual Studio 16 2019"
  40. TARGET: "-A x64"
  41. PRJ_CFG: Release
  42. OPENSSL: ON
  43. WINSSL: OFF
  44. HTTP_ONLY: OFF
  45. TESTING: OFF
  46. SHARED: ON
  47. DISABLED_TESTS: ""
  48. COMPILER_PATH: ""
  49. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  50. BUILD_SYSTEM: CMake
  51. PRJ_GEN: "Visual Studio 16 2019"
  52. TARGET: "-A ARM64"
  53. PRJ_CFG: Release
  54. OPENSSL: OFF
  55. WINSSL: ON
  56. HTTP_ONLY: OFF
  57. TESTING: OFF
  58. SHARED: OFF
  59. DISABLED_TESTS: ""
  60. COMPILER_PATH: ""
  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. WINSSL: OFF
  68. HTTP_ONLY: OFF
  69. TESTING: ON
  70. SHARED: OFF
  71. DISABLED_TESTS: "!1139 !1501"
  72. COMPILER_PATH: ""
  73. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  74. BUILD_SYSTEM: CMake
  75. PRJ_GEN: "Visual Studio 16 2019"
  76. TARGET: "-A x64"
  77. PRJ_CFG: Debug
  78. OPENSSL: OFF
  79. WINSSL: ON
  80. HTTP_ONLY: OFF
  81. TESTING: ON
  82. SHARED: OFF
  83. DISABLED_TESTS: "!1139 !1501"
  84. COMPILER_PATH: ""
  85. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  86. BUILD_SYSTEM: CMake
  87. PRJ_GEN: "Visual Studio 16 2019"
  88. TARGET: "-A x64"
  89. PRJ_CFG: Debug
  90. OPENSSL: OFF
  91. WINSSL: OFF
  92. HTTP_ONLY: OFF
  93. TESTING: ON
  94. SHARED: OFF
  95. DISABLED_TESTS: "!1139 !1501"
  96. COMPILER_PATH: ""
  97. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  98. BUILD_SYSTEM: CMake
  99. PRJ_GEN: "Visual Studio 16 2019"
  100. TARGET: "-A x64"
  101. PRJ_CFG: Debug
  102. OPENSSL: OFF
  103. WINSSL: OFF
  104. HTTP_ONLY: ON
  105. TESTING: ON
  106. SHARED: OFF
  107. DISABLED_TESTS: "!1139 !1501"
  108. COMPILER_PATH: ""
  109. # generated CMake-based MSYS Makefiles builds (mingw cross-compiling)
  110. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  111. BUILD_SYSTEM: CMake
  112. PRJ_GEN: "MSYS Makefiles"
  113. PRJ_CFG: Debug
  114. OPENSSL: OFF
  115. WINSSL: ON
  116. HTTP_ONLY: OFF
  117. TESTING: ON
  118. SHARED: OFF
  119. DISABLED_TESTS: "!1139 !1501"
  120. COMPILER_PATH: "C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin"
  121. MSYS2_ARG_CONV_EXCL: "/*"
  122. BUILD_OPT: -k
  123. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  124. BUILD_SYSTEM: CMake
  125. PRJ_GEN: "MSYS Makefiles"
  126. PRJ_CFG: Debug
  127. OPENSSL: OFF
  128. WINSSL: ON
  129. HTTP_ONLY: OFF
  130. TESTING: ON
  131. SHARED: OFF
  132. DISABLED_TESTS: "!1139 !1501"
  133. COMPILER_PATH: "C:\\mingw-w64\\x86_64-7.2.0-posix-seh-rt_v5-rev1\\mingw64\\bin"
  134. MSYS2_ARG_CONV_EXCL: "/*"
  135. BUILD_OPT: -k
  136. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  137. BUILD_SYSTEM: CMake
  138. PRJ_GEN: "MSYS Makefiles"
  139. PRJ_CFG: Debug
  140. OPENSSL: OFF
  141. WINSSL: ON
  142. HTTP_ONLY: OFF
  143. TESTING: ON
  144. SHARED: OFF
  145. DISABLED_TESTS: "!1139 !1501"
  146. COMPILER_PATH: "C:\\mingw-w64\\i686-6.3.0-posix-dwarf-rt_v5-rev1\\mingw32\\bin"
  147. MSYS2_ARG_CONV_EXCL: "/*"
  148. BUILD_OPT: -k
  149. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  150. BUILD_SYSTEM: CMake
  151. PRJ_GEN: "MSYS Makefiles"
  152. PRJ_CFG: Debug
  153. OPENSSL: OFF
  154. WINSSL: OFF
  155. HTTP_ONLY: OFF
  156. TESTING: ON
  157. SHARED: OFF
  158. DISABLED_TESTS: "!1139 !1501"
  159. COMPILER_PATH: "C:\\MinGW\\bin"
  160. MSYS2_ARG_CONV_EXCL: "/*"
  161. BUILD_OPT: -k
  162. # winbuild-based builds
  163. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  164. BUILD_SYSTEM: winbuild_vs2015
  165. DEBUG: yes
  166. PATHPART: debug
  167. TESTING: OFF
  168. ENABLE_UNICODE: no
  169. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  170. BUILD_SYSTEM: winbuild_vs2015
  171. DEBUG: no
  172. PATHPART: release
  173. TESTING: OFF
  174. ENABLE_UNICODE: no
  175. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  176. BUILD_SYSTEM: winbuild_vs2017
  177. DEBUG: yes
  178. PATHPART: debug
  179. TESTING: OFF
  180. ENABLE_UNICODE: no
  181. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  182. BUILD_SYSTEM: winbuild_vs2017
  183. DEBUG: no
  184. PATHPART: release
  185. TESTING: OFF
  186. ENABLE_UNICODE: no
  187. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  188. BUILD_SYSTEM: winbuild_vs2015
  189. DEBUG: yes
  190. PATHPART: debug
  191. TESTING: OFF
  192. ENABLE_UNICODE: yes
  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: yes
  199. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  200. BUILD_SYSTEM: winbuild_vs2017
  201. DEBUG: yes
  202. PATHPART: debug
  203. TESTING: OFF
  204. ENABLE_UNICODE: yes
  205. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  206. BUILD_SYSTEM: winbuild_vs2017
  207. DEBUG: no
  208. PATHPART: release
  209. TESTING: OFF
  210. ENABLE_UNICODE: yes
  211. # generated VisualStudioSolution-based builds
  212. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  213. BUILD_SYSTEM: VisualStudioSolution
  214. PRJ_CFG: "DLL Debug - DLL Windows SSPI - DLL WinIDN"
  215. TESTING: OFF
  216. VC_VERSION: VC15
  217. # autotools-based builds (NOT mingw cross-compiling, but msys2 native)
  218. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  219. BUILD_SYSTEM: autotools
  220. TESTING: ON
  221. DISABLED_TESTS: "!19 ~1056 !1233"
  222. CONFIG_ARGS: "--enable-debug --enable-werror --enable-alt-svc --disable-threaded-resolver --disable-proxy"
  223. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  224. BUILD_SYSTEM: autotools
  225. TESTING: ON
  226. DISABLED_TESTS: "!19 !504 !704 !705 ~1056 !1233"
  227. CONFIG_ARGS: "--enable-debug --enable-werror --enable-alt-svc --disable-threaded-resolver"
  228. install:
  229. - set "PATH=C:\msys64\usr\bin;%PATH%"
  230. - if not "%COMPILER_PATH%"=="" (
  231. set "PATH=%COMPILER_PATH%;%PATH%" )
  232. build_script:
  233. - if %BUILD_SYSTEM%==CMake (
  234. cmake .
  235. -G"%PRJ_GEN%"
  236. %TARGET%
  237. -DCMAKE_USE_OPENSSL=%OPENSSL%
  238. -DCMAKE_USE_WINSSL=%WINSSL%
  239. -DHTTP_ONLY=%HTTP_ONLY%
  240. -DBUILD_SHARED_LIBS=%SHARED%
  241. -DBUILD_TESTING=%TESTING%
  242. -DCURL_WERROR=ON
  243. -DENABLE_DEBUG=ON
  244. -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=""
  245. -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=""
  246. -DCMAKE_INSTALL_PREFIX="C:/CURL"
  247. -DCMAKE_BUILD_TYPE=%PRJ_CFG% &&
  248. cmake --build . --config %PRJ_CFG% --parallel 2 --clean-first -- %BUILD_OPT%
  249. ) else (
  250. if %BUILD_SYSTEM%==VisualStudioSolution (
  251. cd projects &&
  252. .\\generate.bat %VC_VERSION% &&
  253. msbuild.exe /p:Configuration="%PRJ_CFG%" "Windows\\%VC_VERSION%\\curl-all.sln"
  254. ) else (
  255. if %BUILD_SYSTEM%==winbuild_vs2015 (
  256. call buildconf.bat &&
  257. cd winbuild &&
  258. call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 &&
  259. call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 &&
  260. 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% &&
  261. ..\builds\libcurl-vc14-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V
  262. ) else (
  263. if %BUILD_SYSTEM%==winbuild_vs2017 (
  264. call buildconf.bat &&
  265. cd winbuild &&
  266. call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" &&
  267. nmake /f Makefile.vc mode=dll VC=15 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% ENABLE_UNICODE=%ENABLE_UNICODE% &&
  268. ..\builds\libcurl-vc15-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V
  269. ) else (
  270. if %BUILD_SYSTEM%==autotools (
  271. bash.exe -e -l -c "cd /c/projects/curl && ./buildconf && ./configure %CONFIG_ARGS% && make && make examples && cd tests && make"
  272. )))))
  273. test_script:
  274. - if %TESTING%==ON (
  275. echo APPVEYOR_API_URL=%APPVEYOR_API_URL% &&
  276. bash.exe -e -l -c "cd /c/projects/curl/tests && ./runtests.pl -a -b$(($(echo '%APPVEYOR_API_URL%' | cut -d'/' -f3 | cut -d':' -f2)+1)) -p !flaky %DISABLED_TESTS%" )
  277. # whitelist branches to avoid testing feature branches twice (as branch and as pull request)
  278. branches:
  279. only:
  280. - master
  281. - /\/ci$/
  282. artifacts:
  283. - path: '**/curl.exe'
  284. name: curl
  285. - path: '**/libcurl.dll'
  286. name: libcurl