#*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # # SPDX-License-Identifier: curl # ########################################################################### # https://ci.appveyor.com/project/curlorg/curl/history # Appveyor configuration # https://www.appveyor.com/docs/appveyor-yml/ version: 7.50.0.{build} environment: UNITY: "OFF" matrix: # generated CMake-based Visual Studio Release builds - job_name: "CMake, VS2008, Release x86, Schannel" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 9 2008" PRJ_CFG: Release OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: OFF SHARED: ON DISABLED_TESTS: "" - job_name: "CMake, VS2022, Release x64, OpenSSL, WebSockets, Unity" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 17 2022" TARGET: "-A x64" PRJ_CFG: Release OPENSSL: ON SCHANNEL: OFF ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: OFF SHARED: ON DISABLED_TESTS: "" WEBSOCKETS: ON UNITY: "ON" - job_name: "CMake, VS2022, Release arm64, Schannel, Static" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 17 2022" TARGET: "-A ARM64" PRJ_CFG: Release OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: OFF SHARED: OFF DISABLED_TESTS: "" # generated CMake-based Visual Studio Debug builds - job_name: "CMake, VS2010, Debug x64, no SSL, Static" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 10 2010 Win64" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: OFF ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: ON SHARED: OFF DISABLED_TESTS: "!1139 !1501" ADD_PATH: "C:\\msys64\\usr\\bin" - job_name: "CMake, VS2022, Debug x64, Schannel, Static, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 17 2022" TARGET: "-A x64" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: ON HTTP_ONLY: OFF TESTING: ON SHARED: OFF DISABLED_TESTS: "~571 !1139 !1501" ADD_PATH: "C:\\msys64\\usr\\bin" - job_name: "CMake, VS2022, Debug x64, no SSL, Static" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 17 2022" TARGET: "-A x64" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: OFF ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: ON SHARED: OFF DISABLED_TESTS: "~571 !1139 !1501" ADD_PATH: "C:\\msys64\\usr\\bin" - job_name: "CMake, VS2022, Debug x64, no SSL, Static, HTTP only" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" BUILD_SYSTEM: CMake PRJ_GEN: "Visual Studio 17 2022" TARGET: "-A x64" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: OFF ENABLE_UNICODE: OFF HTTP_ONLY: ON TESTING: ON SHARED: OFF DISABLED_TESTS: "!1139 !1501" ADD_PATH: "C:\\msys64\\usr\\bin" # generated CMake-based MSYS Makefiles builds (mingw cross-compiling) - job_name: "CMake, mingw-w64, gcc 8, Debug x64, Schannel, Static, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: CMake PRJ_GEN: "MSYS Makefiles" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: ON HTTP_ONLY: OFF TESTING: ON SHARED: OFF DISABLED_TESTS: "!1139 !1501" ADD_PATH: "C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin;C:\\msys64\\usr\\bin" MSYS2_ARG_CONV_EXCL: "/*" BUILD_OPT: -k - job_name: "CMake, mingw-w64, gcc 7, Debug x64, Schannel, Static, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: CMake PRJ_GEN: "MSYS Makefiles" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: ON HTTP_ONLY: OFF TESTING: ON SHARED: OFF DISABLED_TESTS: "!1139 !1501" ADD_PATH: "C:\\mingw-w64\\x86_64-7.2.0-posix-seh-rt_v5-rev1\\mingw64\\bin;C:\\msys64\\usr\\bin" MSYS2_ARG_CONV_EXCL: "/*" BUILD_OPT: -k - job_name: "CMake, mingw-w64, Debug x64, Schannel, Static, Unity" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: CMake PRJ_GEN: "MSYS Makefiles" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: OFF SHARED: OFF ADD_PATH: "C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin;C:\\msys64\\usr\\bin" MSYS2_ARG_CONV_EXCL: "/*" BUILD_OPT: -k UNITY: "ON" - job_name: "CMake, mingw-w64, Debug x86, Schannel, Static" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: CMake PRJ_GEN: "MSYS Makefiles" PRJ_CFG: Debug OPENSSL: OFF SCHANNEL: ON ENABLE_UNICODE: OFF HTTP_ONLY: OFF TESTING: ON SHARED: OFF DISABLED_TESTS: "!1139 !1501" ADD_PATH: "C:\\mingw-w64\\i686-6.3.0-posix-dwarf-rt_v5-rev1\\mingw32\\bin;C:\\msys64\\usr\\bin" MSYS2_ARG_CONV_EXCL: "/*" BUILD_OPT: -k # winbuild-based builds - job_name: "winbuild, VS2015, Debug" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: winbuild_vs2015 DEBUG: yes PATHPART: debug TESTING: OFF ENABLE_UNICODE: no - job_name: "winbuild, VS2015, Release" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: winbuild_vs2015 DEBUG: no PATHPART: release TESTING: OFF ENABLE_UNICODE: no - job_name: "winbuild, VS2017, Debug" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: winbuild_vs2017 DEBUG: yes PATHPART: debug TESTING: OFF ENABLE_UNICODE: no - job_name: "winbuild, VS2017, Release" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: winbuild_vs2017 DEBUG: no PATHPART: release TESTING: OFF ENABLE_UNICODE: no - job_name: "winbuild, VS2015, Debug, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: winbuild_vs2015 DEBUG: yes PATHPART: debug TESTING: OFF ENABLE_UNICODE: yes - job_name: "winbuild, VS2015, Release, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2015" BUILD_SYSTEM: winbuild_vs2015 DEBUG: no PATHPART: release TESTING: OFF ENABLE_UNICODE: yes - job_name: "winbuild, VS2017, Debug, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: winbuild_vs2017 DEBUG: yes PATHPART: debug TESTING: OFF ENABLE_UNICODE: yes - job_name: "winbuild, VS2017, Release, Unicode" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: winbuild_vs2017 DEBUG: no PATHPART: release TESTING: OFF ENABLE_UNICODE: yes # generated VisualStudioSolution-based builds - job_name: "VisualStudioSolution, VS2017, Debug" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: VisualStudioSolution PRJ_CFG: "DLL Debug - DLL Windows SSPI - DLL WinIDN" TESTING: OFF VC_VERSION: VC14.10 # autotools-based builds (NOT mingw cross-compiling, but msys2 native) - job_name: "autotools, msys2, Debug, no Proxy, no SSL" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: autotools TESTING: ON DISABLED_TESTS: "!19 !1233" ADD_PATH: "C:\\msys64\\usr\\bin" CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --disable-proxy --without-ssl --enable-websockets" - job_name: "autotools, msys2, Debug, no SSL" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: autotools TESTING: ON DISABLED_TESTS: "!19 !504 !704 !705 !1233" ADD_PATH: "C:\\msys64\\usr\\bin" CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets" - job_name: "autotools, msys2, Release, no SSL" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017" BUILD_SYSTEM: autotools TESTING: ON DISABLED_TESTS: "!19 !504 !704 !705 !1233" ADD_PATH: "C:\\msys64\\usr\\bin" CONFIG_ARGS: "--enable-warnings --enable-werror --without-ssl --enable-websockets" # autotools-based Cygwin build - job_name: "autotools, cygwin, Debug, no SSL" APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2022" BUILD_SYSTEM: autotools TESTING: ON DISABLED_TESTS: "" ADD_PATH: "C:\\cygwin64\\bin" CONFIG_ARGS: "--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets" POSIX_PATH_PREFIX: "/cygdrive" install: - if not "%ADD_PATH%"=="" ( set "PATH=%ADD_PATH%;%PATH%" ) build_script: - if %BUILD_SYSTEM%==CMake ( cmake . -G"%PRJ_GEN%" %TARGET% -DCURL_USE_OPENSSL=%OPENSSL% -DOPENSSL_ROOT_DIR=C:/OpenSSL-v111-Win64 -DCURL_USE_SCHANNEL=%SCHANNEL% -DHTTP_ONLY=%HTTP_ONLY% -DBUILD_SHARED_LIBS=%SHARED% -DBUILD_TESTING=%TESTING% -DENABLE_WEBSOCKETS=%WEBSOCKETS% -DCMAKE_UNITY_BUILD=%UNITY% -DCURL_WERROR=ON -DENABLE_DEBUG=ON -DENABLE_UNICODE=%ENABLE_UNICODE% -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE="" -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG="" -DCMAKE_INSTALL_PREFIX="C:/CURL" -DCMAKE_BUILD_TYPE=%PRJ_CFG% && cmake --build . --config %PRJ_CFG% --parallel 2 --clean-first -- %BUILD_OPT% ) else ( if %BUILD_SYSTEM%==VisualStudioSolution ( cd projects && .\\generate.bat %VC_VERSION% && msbuild.exe /p:Configuration="%PRJ_CFG%" "Windows\\%VC_VERSION%\\curl-all.sln" ) else ( if %BUILD_SYSTEM%==winbuild_vs2015 ( call buildconf.bat && cd winbuild && call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 && call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 && 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% && ..\builds\libcurl-vc14-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V ) else ( if %BUILD_SYSTEM%==winbuild_vs2017 ( call buildconf.bat && cd winbuild && call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" && 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% && ..\builds\libcurl-vc14.10-x64-%PATHPART%-dll-ssl-dll-ipv6-sspi\bin\curl.exe -V ) else ( if %BUILD_SYSTEM%==autotools ( 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" ))))) - if %TESTING%==ON ( if %BUILD_SYSTEM%==CMake ( cmake --build . --config %PRJ_CFG% --parallel 2 --target testdeps )) test_script: - if exist C:/msys64/usr/bin/curl.exe ( set ACURL=-ac %POSIX_PATH_PREFIX%/c/msys64/usr/bin/curl.exe ) - if exist C:/Windows/System32/curl.exe ( set ACURL=-ac %POSIX_PATH_PREFIX%/c/Windows/System32/curl.exe ) - if %TESTING%==ON ( if %BUILD_SYSTEM%==CMake ( set TFLAGS=%ACURL% %DISABLED_TESTS% && cmake --build . --config %PRJ_CFG% --target test-ci ) else ( if %BUILD_SYSTEM%==autotools ( bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl && make V=1 TFLAGS='%ACURL% %DISABLED_TESTS%' test-ci" ) else ( bash.exe -e -l -c "cd %POSIX_PATH_PREFIX%/c/projects/curl/tests && ./runtests.pl -a -p !flaky -r -rm %ACURL% %DISABLED_TESTS%" )) ) # select branches to avoid testing feature branches twice (as branch and as pull request) branches: only: - master - /\/ci$/ skip_commits: files: - '.azure-pipelines.yml' - '.circleci/**/*' - '.cirrus.yml' - '.github/**/*' - 'packages/**/*' - 'plan9/**/*' artifacts: - path: '**/curl.exe' name: curl - path: '**/*curl*.dll' name: libcurl dll