version: '{build}'
clone_folder: c:\pillow
init:
- ECHO %PYTHON%
#- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
# Uncomment previous line to get RDP access during the build.

environment:
  X64_EXT: -x64
  EXECUTABLE: python.exe
  PIP_DIR: Scripts
  VENV: NO
  TEST_OPTIONS:
  DEPLOY: YES
  matrix:
  - PYTHON: C:/Python38
  - PYTHON: C:/Python38-x64
  - PYTHON: C:/Python35
  - PYTHON: C:/Python35-x64
  - PYTHON: C:/msys64/mingw32
    EXECUTABLE: bin/python3
    PIP_DIR: bin
    TEST_OPTIONS: --processes=0
    DEPLOY: NO
  - PYTHON: C:/vp/pypy3
    EXECUTABLE: bin/pypy.exe
    PIP_DIR: bin
    VENV: YES


install:
- curl -fsSL -o pillow-depends.zip https://github.com/python-pillow/pillow-depends/archive/master.zip
- 7z x pillow-depends.zip -oc:\
- mv c:\pillow-depends-master c:\pillow-depends
- xcopy c:\pillow-depends\*.zip c:\pillow\winbuild\
- xcopy c:\pillow-depends\*.tar.gz c:\pillow\winbuild\
- xcopy /s c:\pillow-depends\test_images\* c:\pillow\tests\images
- cd c:\pillow\winbuild\
- ps: |
      if ($env:PYTHON -eq "c:/vp/pypy3")
      {
        c:\pillow\winbuild\appveyor_install_pypy3.cmd
      }
- ps: |
      if ($env:PYTHON -eq "c:/msys64/mingw32")
      {
        c:\msys64\usr\bin\bash -l -c c:\\pillow\\winbuild\\appveyor_install_msys2_deps.sh
      }
      else
      {
        c:\python37\python.exe c:\pillow\winbuild\build_dep.py
        c:\pillow\winbuild\build_deps.cmd
        $host.SetShouldExit(0)
      }
- curl -fsSL -o gs952.exe https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs952/gs952w32.exe
- gs952.exe /S
- path %path%;C:\Program Files (x86)\gs\gs9.52\bin

build_script:
- ps: |
      if ($env:PYTHON -eq "c:/msys64/mingw32")
      {
        c:\msys64\usr\bin\bash -l -c c:\\pillow\\winbuild\\appveyor_build_msys2.sh
        Write-Host "through install"
        $host.SetShouldExit(0)
      }
      else
      {
        & $env:PYTHON/$env:EXECUTABLE c:\pillow\winbuild\build.py
        $host.SetShouldExit(0)
      }
- cd c:\pillow
- '%PYTHON%\%EXECUTABLE% selftest.py --installed'

test_script:
- cd c:\pillow
- '%PYTHON%\%PIP_DIR%\pip.exe install pytest pytest-cov'
- c:\"Program Files (x86)"\"Windows Kits"\10\Debuggers\x86\gflags.exe /p /enable %PYTHON%\%EXECUTABLE%
- '%PYTHON%\%EXECUTABLE% -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests'
#- '%PYTHON%\%EXECUTABLE% test-installed.py -v -s %TEST_OPTIONS%' TODO TEST_OPTIONS with pytest?

after_test:
- pip install codecov
- codecov --file coverage.xml --name %PYTHON% --flags AppVeyor

matrix:
  fast_finish: true

cache:
- '%LOCALAPPDATA%\pip\Cache'

artifacts:
- path: pillow\dist\*.egg
  name: egg
- path: pillow\dist\*.wheel
  name: wheel

before_deploy:
  - cd c:\pillow
  - '%PYTHON%\%PIP_DIR%\pip.exe install wheel'
  - cd c:\pillow\winbuild\
  - '%PYTHON%\%EXECUTABLE% c:\pillow\winbuild\build.py --wheel'
  - cd c:\pillow
  - ps: Get-ChildItem .\dist\*.* | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }

deploy:
  provider: S3
  region: us-west-2
  access_key_id: AKIAIRAXC62ZNTVQJMOQ
  secret_access_key:
    secure: Hwb6klTqtBeMgxAjRoDltiiqpuH8xbwD4UooDzBSiCWXjuFj1lyl4kHgHwTCCGqi
  bucket: pillow-nightly
  folder: win/$(APPVEYOR_BUILD_NUMBER)/
  artifact: /.*egg|wheel/
  on:
    APPVEYOR_REPO_NAME: python-pillow/Pillow
    branch: master
    deploy: YES


# Uncomment the following lines to get RDP access after the build/test and block for
# up to the timeout limit (~1hr)
#
#on_finish:
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))