environment:

  # 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 interpreter
  # See: http://stackoverflow.com/a/13751649/163740
  CMD_IN_ENV: "cmd /E:ON /V:ON /C obvci_appveyor_python_build_env.cmd"

  # Workaround for https://github.com/conda/conda-build/issues/636
  PYTHONIOENCODING: "UTF-8"

  matrix:
    # Note: Because we have to separate the py2 and py3 components due to compiler version, we have a race condition for non-python packages.
    # Not sure how to resolve this, but maybe we should be tracking the VS version in the build string anyway?
    - TARGET_ARCH: "x64"
      CONDA_PY: "27"
      PY_CONDITION: "python >=2.7,<3"
    - TARGET_ARCH: "x64"
      CONDA_PY: "34"
      PY_CONDITION: "python >=3.4,<3.5"
    - TARGET_ARCH: "x64"
      CONDA_PY: "35"
      PY_CONDITION: "python >=3.5"


# We always use a 64-bit machine, but can build x86 distributions
# with the TARGET_ARCH variable (which is used by CMD_IN_ENV).
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." }

    # Use the pre-installed Miniconda for the desired arch
    - ps: if($env:TARGET_ARCH -eq 'x86')
            {$root = "C:\Miniconda"}
          else
            {$root = "C:\Miniconda-x64"}
          $env:path="$root;$root\Scripts;$root\Library\bin;$($env:path)"
    - cmd: conda config --set show_channel_urls true
    - cmd: conda config --set always_yes yes --set changeps1 no
    - cmd: conda update --yes --quiet conda
    - cmd: set PYTHONUNBUFFERED=1
    - cmd: conda config --add channels conda-forge
    - cmd: conda info
    - cmd: conda create -n nbpresent "%PY_CONDITION%"
    - cmd: conda env update
    - cmd: activate nbpresent
    - cmd: npm install

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

test_script:
    - cmd: python setup.py develop
    - cmd: npm run build
    - cmd: jupyter nbextension install nbpresent --py --sys-prefix
    - cmd: jupyter nbextension enable nbpresent --py --sys-prefix
    - cmd: jupyter serverextension enable nbpresent --py --sys-prefix
    - cmd: npm run test
