# Appveyor is Windows CI: https://ci.appveyor.com/project/bdarnell/tornado
environment:
  global:
    TORNADO_EXTENSION: "1"

  # We only build with 3.5+ because it works out of the box, while other
  # versions require lots of machinery.
  #
  # We produce binary wheels for 32- and 64-bit builds, but because
  # the tests are so slow on Windows (6 minutes vs 15 seconds on Linux
  # or MacOS), we don't want to test the full matrix. We do full
  # tests on a couple of configurations and on the others we limit
  # the tests to the websocket module (which, because it exercises the
  # C extension module, is most likely to exhibit differences between
  # 32- and 64-bits)
  matrix:
    - PYTHON: "C:\\Python35"
      PYTHON_VERSION: "3.5.x"
      PYTHON_ARCH: "32"
      TOX_ENV: "py35"
      TOX_ARGS: ""

    - PYTHON: "C:\\Python35-x64"
      PYTHON_VERSION: "3.5.x"
      PYTHON_ARCH: "64"
      TOX_ENV: "py35"
      TOX_ARGS: "tornado.test.websocket_test"

    - PYTHON: "C:\\Python36"
      PYTHON_VERSION: "3.6.x"
      PYTHON_ARCH: "32"
      TOX_ENV: "py36"
      TOX_ARGS: "tornado.test.websocket_test"

    - PYTHON: "C:\\Python36-x64"
      PYTHON_VERSION: "3.6.x"
      PYTHON_ARCH: "64"
      TOX_ENV: "py36"
      TOX_ARGS: ""

    - PYTHON: "C:\\Python37"
      PYTHON_VERSION: "3.7.x"
      PYTHON_ARCH: "32"
      TOX_ENV: "py37"
      TOX_ARGS: "tornado.test.websocket_test"

    - PYTHON: "C:\\Python37-x64"
      PYTHON_VERSION: "3.7.x"
      PYTHON_ARCH: "64"
      TOX_ENV: "py37"
      TOX_ARGS: ""

install:
  # Make sure the right python version is first on the PATH.
  - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"

  # Check that we have the expected version and architecture for Python
  - "python --version"
  - "python -c \"import struct; print(struct.calcsize('P') * 8)\""

  # Upgrade to the latest version of pip to avoid it displaying warnings
  # about it being out of date.
  - "python -m pip install --disable-pip-version-check --user --upgrade pip"

  - "python -m pip install tox wheel"

build: false  # Not a C# project, build stuff at the test step instead.

test_script:
  # Build the compiled extension and run the project tests.
  # This is a bit of a hack that doesn't scale with new python versions,
  # but for now it lets us avoid duplication with .travis.yml and tox.ini.
  # Running "py3x-full" would be nice but it's failing on installing
  # dependencies with no useful logs.
  - "tox -e %TOX_ENV% -- %TOX_ARGS%"

after_test:
  # If tests are successful, create binary packages for the project.
  - "python setup.py bdist_wheel"
  - ps: "ls dist"

artifacts:
  # Archive the generated packages in the ci.appveyor.com build report.
  - path: dist\*

#on_success:
#  - TODO: upload the content of dist/*.whl to a public wheelhouse
#
