environment:

  CONDA_INSTALL_LOCN: "C:\\conda"

  # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
  # /E:ON and /V:ON options are not enabled in the batch script intepreter
  # See: http://stackoverflow.com/a/13751649/163740
  CMD_IN_ENV: "cmd /E:ON /V:ON /C obvci_appveyor_python_build_env.cmd"

  # We set a default Python version for the miniconda that is to be installed. This can be
  # overridden in the matrix definition where appropriate.
  CONDA_PY: "27"

  matrix:

    - TARGET_ARCH: x64
      CONDA_PY: 35

# We always use a 64-bit machine, but can build x86 distributions
# with the TARGET_ARCH variable.
platform:
    - x64

install:
    # If there is a newer build queued for the same PR, cancel this one.
    # The AppVeyor 'rollout builds' option is supposed to serve the same
    # purpose but it is problematic because it tends to cancel builds pushed
    # directly to master instead of just PR builds (or the converse).
    # credits: JuliaLang developers.
    - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
        https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
        Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
          throw "There are newer queued builds for this pull request, failing early." }

    # Cywing's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.)
    - cmd: rmdir C:\cygwin /s /q
    - appveyor DownloadFile "https://raw.githubusercontent.com/pelson/Obvious-CI/master/bootstrap-obvious-ci-and-miniconda.py"
    - cmd: python bootstrap-obvious-ci-and-miniconda.py %CONDA_INSTALL_LOCN% %TARGET_ARCH% %CONDA_PY:~0,1% --without-obvci
    - cmd: set PATH=%CONDA_INSTALL_LOCN%;%CONDA_INSTALL_LOCN%\scripts;%PATH%
    - cmd: set PYTHONUNBUFFERED=1

    - cmd: conda config --set show_channel_urls true
    - cmd: conda install --yes python=3.5
    - cmd: conda install -c pelson/channel/development --yes --quiet obvious-ci
    - cmd: conda config --add channels conda-forge
    - cmd: conda info
    - cmd: conda install -n root --quiet --yes conda-build anaconda-client jinja2 setuptools
    # Workaround for Python 3.4 and x64 bug in latest conda-build.
    # FIXME: Remove once there is a release that fixes the upstream issue
    # ( https://github.com/conda/conda-build/issues/895 ).
    - cmd: if "%TARGET_ARCH%" == "x64" if "%CONDA_PY%" == "34" conda install conda-build=1.20.0 --yes

    # Now install the pacakge dependencies
    - cmd: conda config --add channels conda-forge
    - cmd: conda config --add channels jlaura
    - cmd: conda install --yes -c conda-forge gdal h5py
    - cmd: conda install --yes pandas sqlalchemy pyyaml networkx affine scipy
    - cmd: conda install --yes -c jlaura protobuf pvl

    # Development installation
    - cmd: conda install --yes pytest pytest-cov
    - cmd: pip install coveralls

# Skip .NET project specific build phase.
build: off

test_script:
    - cmd: pytest --cov=plio --ignore=plio/examples
    - "%CMD_IN_ENV% conda build conda --quiet"

deploy_script:

    - 'python ci_support\upload_or_check_non_existence.py .\conda jlaura --channel=main'
