#***************************************************************************
#                                  _   _ ____  _
#  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'
  TFLAGS: 'skipall'
  matrix:

    # generated CMake-based Visual Studio 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
      DEBUG: 'OFF'
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      SHARED: 'ON'
    - job_name: 'CMake, VS2008, Debug, x86, Schannel, Build-only'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'Visual Studio 9 2008'
      PRJ_CFG: Debug
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'OFF'
      HTTP_ONLY: 'OFF'
      SHARED: 'ON'
    - 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'
      WEBSOCKETS: 'ON'
    - job_name: 'CMake, VS2022, Release, arm64, Schannel, Static, Build-tests'
      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'
      DEBUG: 'OFF'
      CURLDEBUG: 'ON'
      TFLAGS: 'skiprun'
    - 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'
    - job_name: 'CMake, VS2022, Debug, x64, Schannel, Static, Unicode, Build-only'
      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'
    - job_name: 'CMake, VS2022, Release, x64, Schannel, Shared, Unicode, DEBUGBULID, no-CURLDEBUG, Build-only'
      APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
      BUILD_SYSTEM: CMake
      PRJ_GEN: 'Visual Studio 17 2022'
      TARGET: '-A x64'
      PRJ_CFG: Release
      SCHANNEL: 'ON'
      ENABLE_UNICODE: 'ON'
      HTTP_ONLY: 'OFF'
      SHARED: 'ON'
      CURLDEBUG: 'OFF'
    - job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, Build-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: 'OFF'
    - job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, HTTP only, Build-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'

    # 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
      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
      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
      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
      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
      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
      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
      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
      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'
      VC_VERSION: VC12

install:
  - ps: $env:PATH = "C:/msys64/usr/bin;$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/*'
    - '.github/**/*'
    - 'packages/**/*'
    - 'plan9/**/*'

artifacts:
  - path: '**/curl.exe'
    name: curl
  - path: '**/*curl*.dll'
    name: libcurl dll