version: '{branch}-{build}'
build: off

image:
  - Visual Studio 2017
  
platform:
  - x86
  - x64

environment:
  global:
    PYTHONUNBUFFERED: True
    PYTHONWARNINGS: 'ignore:::wheel.pep425tags:'
    CODECOV_ENV: PYTHON_VERSION, PLATFORM

  matrix:
    - PYTHON_VERSION: 3.9
      BUILD_OPTS: --xplat
    - PYTHON_VERSION: 3.8
      BUILD_OPTS: --xplat
    - PYTHON_VERSION: 3.7
      BUILD_OPTS: --xplat
    - PYTHON_VERSION: 3.6
      BUILD_OPTS: --xplat
    - PYTHON_VERSION: 3.5
      BUILD_OPTS: --xplat
    - PYTHON_VERSION: 2.7 
      BUILD_OPTS: --xplat
    - PYTHON_VERSION: 3.9
    - PYTHON_VERSION: 3.8
    - PYTHON_VERSION: 3.7
    - PYTHON_VERSION: 3.6
    - PYTHON_VERSION: 3.5
    - PYTHON_VERSION: 2.7
init:
  # Update Environment Variables based on matrix/platform
  - set PY_VER=%PYTHON_VERSION:.=%
  - set PYTHON=C:\PYTHON%PY_VER%
  - if %PLATFORM%==x64 (set PYTHON=%PYTHON%-x64)

  # Put desired Python version first in PATH
  - set PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%

install:
  - python -m pip install -U pip
  - pip install --upgrade -r requirements.txt --quiet

  # Install OpenCover. Can't put on `packages.config`, not Mono compatible
  - .\tools\nuget\nuget.exe install OpenCover -OutputDirectory packages -Verbosity quiet

build_script:
  # Create clean `sdist`. Only used for releases
  - python setup.py --quiet sdist
  # Build `wheel` with coverage of `setup.py`
  - coverage run setup.py bdist_wheel %BUILD_OPTS%

test_script:
  - pip install --find-links=.\dist\ pythonnet
  - ps: .\ci\appveyor_run_tests.ps1

on_finish:
  # Temporary disable multiple upload due to codecov limit of 20 per commit.
  # https://docs.codecov.io/blog/week-8-2017
  - coverage xml -i
  # - codecov --file coverage.xml --flags setup_windows
  # - codecov --file py.coverage --flags python_tests
  # - codecov --file cs.coverage --flags embedded_tests
  - codecov --file py.coverage cs.coverage coverage.xml --flags setup_windows

artifacts:
  - path: dist\*
  - path: '.\src\runtime\bin\*.nupkg'

notifications:
  - provider: Slack
    incoming_webhook:
      secure: 2S/t6rGHdbwoxehnvn5KgfsHrBFEtwnPD7M5olGErmz70oWFVpqoWd/EvDwh7rKZGdOTjDmpwcukc2xi5VRaGHbBAqFYS3tAdgAMrcaTNWs=
