appveyor.yml 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  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. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  26. BUILD_SYSTEM: CMake
  27. PRJ_GEN: "Visual Studio 9 2008"
  28. PRJ_CFG: Release
  29. OPENSSL: OFF
  30. WINSSL: ON
  31. HTTP_ONLY: OFF
  32. TESTING: OFF
  33. SHARED: ON
  34. DISABLED_TESTS: ""
  35. COMPILER_PATH: ""
  36. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  37. BUILD_SYSTEM: CMake
  38. PRJ_GEN: "Visual Studio 16 2019"
  39. TARGET: "-A x64"
  40. PRJ_CFG: Debug
  41. OPENSSL: OFF
  42. WINSSL: ON
  43. HTTP_ONLY: OFF
  44. TESTING: ON
  45. SHARED: OFF
  46. DISABLED_TESTS: "!1139"
  47. COMPILER_PATH: ""
  48. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  49. BUILD_SYSTEM: CMake
  50. PRJ_GEN: "Visual Studio 16 2019"
  51. TARGET: "-A x64"
  52. PRJ_CFG: Release
  53. OPENSSL: ON
  54. WINSSL: OFF
  55. HTTP_ONLY: OFF
  56. TESTING: OFF
  57. SHARED: ON
  58. DISABLED_TESTS: ""
  59. COMPILER_PATH: ""
  60. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  61. BUILD_SYSTEM: CMake
  62. PRJ_GEN: "Visual Studio 10 2010 Win64"
  63. PRJ_CFG: Debug
  64. OPENSSL: OFF
  65. WINSSL: OFF
  66. HTTP_ONLY: OFF
  67. TESTING: ON
  68. SHARED: OFF
  69. DISABLED_TESTS: "!1139"
  70. COMPILER_PATH: ""
  71. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  72. BUILD_SYSTEM: CMake
  73. PRJ_GEN: "Visual Studio 16 2019"
  74. TARGET: "-A x64"
  75. PRJ_CFG: Debug
  76. OPENSSL: OFF
  77. WINSSL: OFF
  78. HTTP_ONLY: OFF
  79. TESTING: ON
  80. SHARED: OFF
  81. DISABLED_TESTS: "!1139"
  82. COMPILER_PATH: ""
  83. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  84. BUILD_SYSTEM: CMake
  85. PRJ_GEN: "Visual Studio 16 2019"
  86. TARGET: "-A x64"
  87. PRJ_CFG: Debug
  88. OPENSSL: OFF
  89. WINSSL: OFF
  90. HTTP_ONLY: ON
  91. TESTING: ON
  92. SHARED: OFF
  93. DISABLED_TESTS: "!1139"
  94. COMPILER_PATH: ""
  95. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  96. BUILD_SYSTEM: CMake
  97. PRJ_GEN: "MSYS Makefiles"
  98. PRJ_CFG: Debug
  99. OPENSSL: OFF
  100. WINSSL: OFF
  101. HTTP_ONLY: OFF
  102. TESTING: ON
  103. SHARED: OFF
  104. DISABLED_TESTS: "!1139"
  105. COMPILER_PATH: "C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin"
  106. MSYS2_ARG_CONV_EXCL: "/*"
  107. BUILD_OPT: -k
  108. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  109. BUILD_SYSTEM: CMake
  110. PRJ_GEN: "MSYS Makefiles"
  111. PRJ_CFG: Debug
  112. OPENSSL: OFF
  113. WINSSL: ON
  114. HTTP_ONLY: OFF
  115. TESTING: ON
  116. SHARED: OFF
  117. DISABLED_TESTS: "!1139"
  118. COMPILER_PATH: "C:\\mingw-w64\\i686-6.3.0-posix-dwarf-rt_v5-rev1\\mingw32\\bin"
  119. MSYS2_ARG_CONV_EXCL: "/*"
  120. BUILD_OPT: -k
  121. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  122. BUILD_SYSTEM: CMake
  123. PRJ_GEN: "MSYS Makefiles"
  124. PRJ_CFG: Debug
  125. OPENSSL: OFF
  126. WINSSL: OFF
  127. HTTP_ONLY: OFF
  128. TESTING: ON
  129. SHARED: OFF
  130. DISABLED_TESTS: "!1139"
  131. COMPILER_PATH: "C:\\MinGW\\bin"
  132. MSYS2_ARG_CONV_EXCL: "/*"
  133. BUILD_OPT: -k
  134. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  135. BUILD_SYSTEM: winbuild_vs2015
  136. DEBUG: yes
  137. PATHPART: debug
  138. TESTING: OFF
  139. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  140. BUILD_SYSTEM: winbuild_vs2015
  141. DEBUG: no
  142. PATHPART: release
  143. TESTING: OFF
  144. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  145. BUILD_SYSTEM: winbuild_vs2017
  146. DEBUG: yes
  147. PATHPART: debug
  148. TESTING: OFF
  149. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  150. BUILD_SYSTEM: winbuild_vs2017
  151. DEBUG: no
  152. PATHPART: release
  153. TESTING: OFF
  154. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
  155. BUILD_SYSTEM: VisualStudioSolution
  156. PRJ_CFG: "DLL Debug - DLL Windows SSPI - DLL WinIDN"
  157. TESTING: OFF
  158. VC_VERSION: VC15
  159. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
  160. BUILD_SYSTEM: CMake
  161. PRJ_GEN: "Visual Studio 16 2019"
  162. TARGET: "-A ARM64"
  163. PRJ_CFG: Release
  164. OPENSSL: OFF
  165. WINSSL: ON
  166. HTTP_ONLY: OFF
  167. TESTING: OFF
  168. SHARED: OFF
  169. DISABLED_TESTS: ""
  170. COMPILER_PATH: ""
  171. - APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015"
  172. BUILD_SYSTEM: autotools
  173. TESTING: ON
  174. DISABLED_TESTS: "!19 !1056 !1233 !1242 !1243 !2002 !2003"
  175. CONFIG_ARGS: "--enable-debug --enable-werror --enable-alt-svc --disable-threaded-resolver --disable-proxy"
  176. install:
  177. - set "PATH=C:\msys64\usr\bin;%PATH%"
  178. - if not "%COMPILER_PATH%"=="" (
  179. set "PATH=%COMPILER_PATH%;%PATH%" )
  180. build_script:
  181. - if %BUILD_SYSTEM%==CMake (
  182. cmake .
  183. -G"%PRJ_GEN%"
  184. %TARGET%
  185. -DCMAKE_USE_OPENSSL=%OPENSSL%
  186. -DCMAKE_USE_WINSSL=%WINSSL%
  187. -DHTTP_ONLY=%HTTP_ONLY%
  188. -DBUILD_SHARED_LIBS=%SHARED%
  189. -DBUILD_TESTING=%TESTING%
  190. -DCURL_WERROR=ON
  191. -DENABLE_DEBUG=ON
  192. -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=""
  193. -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=""
  194. -DCMAKE_INSTALL_PREFIX="C:/CURL"
  195. -DCMAKE_BUILD_TYPE=%PRJ_CFG% &&
  196. cmake --build . --config %PRJ_CFG% --parallel 2 --clean-first -- %BUILD_OPT%
  197. ) else (
  198. if %BUILD_SYSTEM%==VisualStudioSolution (
  199. cd projects &&
  200. .\\generate.bat %VC_VERSION% &&
  201. msbuild.exe /p:Configuration="%PRJ_CFG%" "Windows\\%VC_VERSION%\\curl-all.sln"
  202. ) else (
  203. if %BUILD_SYSTEM%==winbuild_vs2015 (
  204. call buildconf.bat &&
  205. cd winbuild &&
  206. call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 &&
  207. call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 &&
  208. nmake /f Makefile.vc mode=dll VC=14 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% &&
  209. ..\builds\libcurl-vc14-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V
  210. ) else (
  211. if %BUILD_SYSTEM%==winbuild_vs2017 (
  212. call buildconf.bat &&
  213. cd winbuild &&
  214. call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" &&
  215. nmake /f Makefile.vc mode=dll VC=15 "SSL_PATH=C:\OpenSSL-v111-Win64" WITH_SSL=dll MACHINE=x64 DEBUG=%DEBUG% &&
  216. ..\builds\libcurl-vc15-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V
  217. ) else (
  218. if %BUILD_SYSTEM%==autotools (
  219. bash.exe -e -l -c "cd /c/projects/curl && ./buildconf && ./configure %CONFIG_ARGS% && make && make examples && cd tests && make"
  220. )))))
  221. test_script:
  222. - if %TESTING%==ON (
  223. bash.exe -e -l -c "cd /c/projects/curl/tests && ./runtests.pl -a -p !flaky %DISABLED_TESTS%" )
  224. # whitelist branches to avoid testing feature branches twice (as branch and as pull request)
  225. branches:
  226. only:
  227. - master
  228. - /\/ci$/
  229. artifacts:
  230. - path: '**/curl.exe'
  231. name: curl
  232. - path: '**/libcurl.dll'
  233. name: libcurl