#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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/
# AppVeyor worker images:
#   https://www.appveyor.com/docs/windows-images-software/

version: 7.50.0.{build}

environment:
  UNITY: 'ON'
  OPENSSL: 'OFF'
  DEBUG: 'ON'
  SHARED: 'OFF'
  matrix:
    # generated CMake-based Visual Studio Release builds
    - job_name: 'CMake, VS2008, Release, x86, Schannel, Build-only'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'Visual Studio 9 2008'
      PRJ_CFG: Release
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      SHARED: 'ON'
      TESTING: 'OFF'
      DISABLED_TESTS: ''
    - job_name: 'CMake, VS2022, Release, x64, OpenSSL 3.2, WebSockets, Build-only'
      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'
      SHARED: 'ON'
      TESTING: 'OFF'
      DISABLED_TESTS: ''
      WEBSOCKETS: 'ON'
    - job_name: 'CMake, VS2022, Release, arm64, Schannel, Static, Build-only'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'Visual Studio 17 2022'
      TARGET: '-A ARM64'
      PRJ_CFG: Release
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      TESTING: 'OFF'
      DISABLED_TESTS: ''
    # generated CMake-based Visual Studio Debug builds
    - job_name: 'CMake, VS2010, Debug, x64, Schannel, Static, Build-only'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'Visual Studio 10 2010 Win64'
      PRJ_CFG: Debug
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      TESTING: 'OFF'
      DISABLED_TESTS: ''
    - 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
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'ON'
      HTTP_ONLY: 'OFF'
      TESTING: 'ON'
      DISABLED_TESTS: '!1139 !1501 !1177 !1477'
    - 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
      SCHANNEL: 'OFF'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      TESTING: 'ON'
      DISABLED_TESTS: '!1139 !1501 !1177 !1477'
    - 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
      SCHANNEL: 'OFF'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'ON'
      TESTING: 'ON'
      DISABLED_TESTS: '!1139 !1501 !1177 !1477'
    # generated CMake-based MSYS Makefiles builds (mingw cross-compiling)
    - job_name: 'CMake, mingw-w64, gcc 13, Debug, x64, Schannel, Static, Unicode'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'MSYS Makefiles'
      PRJ_CFG: Debug
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'ON'
      HTTP_ONLY: 'OFF'
      TESTING: 'ON'
      DISABLED_TESTS: '!1086 !1139 !1451 !1501 !1177 !1477'
      ADD_PATH: 'C:/msys64/mingw64/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
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'ON'
      HTTP_ONLY: 'OFF'
      TESTING: 'ON'
      DISABLED_TESTS: '!1086 !1139 !1451 !1501 !1177 !1477'
      ADD_PATH: 'C:/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin'
      MSYS2_ARG_CONV_EXCL: '/*'
      BUILD_OPT: -k
    - job_name: 'CMake, mingw-w64, gcc 9, Debug, x64, Schannel, Static'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'MSYS Makefiles'
      PRJ_CFG: Debug
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      TESTING: 'ON'
      # test 286 disabled due to https://github.com/curl/curl/issues/12040
      DISABLED_TESTS: '~286 !1086 !1139 !1451 !1501 !1177 !1477'
      ADD_PATH: 'C:/msys64/mingw64/bin'
      MSYS2_ARG_CONV_EXCL: '/*'
      BUILD_OPT: -k
    - job_name: 'CMake, mingw-w64, gcc 6, Debug, x86, Schannel, Static, no-unity'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'MSYS Makefiles'
      PRJ_CFG: Debug
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      TESTING: 'ON'
      DISABLED_TESTS: '!1086 !1139 !1451 !1501 !1177 !1477'
      ADD_PATH: 'C:/mingw-w64/i686-6.3.0-posix-dwarf-rt_v5-rev1/mingw32/bin'
      MSYS2_ARG_CONV_EXCL: '/*'
      BUILD_OPT: -k
      UNITY: 'OFF'
    # winbuild-based builds
    - job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Build-only'
      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, x64, OpenSSL 1.1.1, Build-only'
      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, x64, OpenSSL 1.1.1, Build-only'
      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, x64, OpenSSL 1.1.1, Build-only'
      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, x64, OpenSSL 1.1.1, Unicode, Build-only'
      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, x64, OpenSSL 1.1.1, Unicode, Build-only'
      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, x64, OpenSSL 1.1.1, Unicode, Build-only'
      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, x64, OpenSSL 1.1.1, Unicode, Build-only'
      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, VS2013, Debug, x86, Schannel, Build-only'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
      BUILD_SYSTEM: VisualStudioSolution
      PRJ_CFG: 'DLL Debug - DLL Windows SSPI - DLL WinIDN'
      TESTING: 'OFF'
      VC_VERSION: VC12
    # autotools-based builds (NOT mingw cross-compiling, but msys2 native)
    - job_name: 'autotools, msys2, Debug, x86_64, no Proxy, no SSL'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
      BUILD_SYSTEM: autotools
      TESTING: 'ON'
      DISABLED_TESTS: '!19 !1233'
      CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --disable-proxy --without-ssl --enable-websockets --without-libpsl'
    - job_name: 'autotools, msys2, Debug, x86_64, no SSL'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
      BUILD_SYSTEM: autotools
      TESTING: 'ON'
      DISABLED_TESTS: '!19 !504 !704 !705 !1233'
      CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets --without-libpsl'
    - job_name: 'autotools, msys2, Release, x86_64, no SSL'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
      BUILD_SYSTEM: autotools
      TESTING: 'ON'
      DISABLED_TESTS: '!19 !504 !704 !705 !1233'
      CONFIG_ARGS: '--enable-warnings --enable-werror --without-ssl --enable-websockets --without-libpsl'
    # autotools-based Cygwin build
    - job_name: 'autotools, cygwin, Debug, x86_64, no SSL'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
      BUILD_SYSTEM: autotools
      TESTING: 'ON'
      DISABLED_TESTS: ''
      ADD_SHELL: 'C:/cygwin64/bin'
      CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets --without-libpsl'

install:
  - ps: |
      if($env:ADD_SHELL -ne $null) {
        $env:PATH = "$env:ADD_SHELL;$env:PATH"
      }
      else {
        $env:PATH = "C:/msys64/usr/bin;$env:PATH"
      }
      if($env:ADD_PATH -ne $null) {
        $env:PATH = "$env:ADD_PATH;$env:PATH"
      }

build_script:
  - cmd: sh -c ./appveyor.sh

clone_depth: 10

# 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
