environment:
  matrix:
  - ARTIFACT_NAME: v8js_vc15_php-7.3_%Platform%_ts.zip
    OUTDIR: Release_TS
    V8_ASSETS: V8-5.8.283.31-%Platform%.zip
    PHP_VERSION: 7.3.0alpha3
  - ARTIFACT_NAME: v8js_vc15_php-7.3_%Platform%_nts.zip
    OUTDIR: Release
    CONFIGURE_EXTRA: --disable-zts
    V8_ASSETS: V8-5.8.283.31-%Platform%.zip
    PHP_VERSION: 7.3.0alpha3
  - ARTIFACT_NAME: v8js_vc15_php-7.2_%Platform%_ts.zip
    OUTDIR: Release_TS
    V8_ASSETS: V8-5.8.283.31-%Platform%.zip
    PHP_VERSION: 7.2.7
  - ARTIFACT_NAME: v8js_vc15_php-7.2_%Platform%_nts.zip
    OUTDIR: Release
    CONFIGURE_EXTRA: --disable-zts
    V8_ASSETS: V8-5.8.283.31-%Platform%.zip
    PHP_VERSION: 7.2.7

  PHP_SDK: c:\projects\php-sdk

os: Visual Studio 2017
clone_folder: c:\projects\php-sdk\v8js-ci\vc15\%Platform%\php\ext\v8js

platform:
  - x64
  - x86

install:
  - cd %PHP_SDK%
  - curl -fSL -o php-sdk-2.1.7beta1.zip "https://github.com/Microsoft/php-sdk-binary-tools/archive/php-sdk-2.1.7beta1.zip"
  - 7z.exe x php-sdk-2.1.7beta1.zip
  - move /y php-sdk-binary-tools-php-sdk-2.1.7beta1\* .
  - for /R /D %%f in (php-sdk-binary-tools-php-sdk-2.1.7beta1\*) do move /y %%f .
  - call bin\phpsdk_setvars.bat
  - call bin\phpsdk_buildtree.bat v8js-ci
  - cd v8js-ci\vc15\%Platform%
  - md deps
  - cd deps
  - curl -fSL -o %V8_ASSETS% "https://s3.amazonaws.com/win-phpv8/%V8_ASSETS%"
  - 7z.exe x %V8_ASSETS%
  - curl -fSL -o libiconv.zip "https://windows.php.net/downloads/php-sdk/deps/vc14/%Platform%/libiconv-1.15-vc14-%Platform%.zip"
  - 7z.exe x libiconv.zip -y
  - curl -fSL -o libxml2.zip "https://windows.php.net/downloads/php-sdk/deps/vc14/%Platform%/libxml2-2.9.8-vc14-%Platform%.zip"
  - 7z.exe x libxml2.zip -y
  - cd ..
  - curl -fSL -o "php-%PHP_VERSION%.tar.gz" "https://github.com/php/php-src/archive/php-%PHP_VERSION%.tar.gz"
  - ren php php-src-php-%PHP_VERSION%
  - 7z.exe x php-%PHP_VERSION%.tar.gz -y
  - 7z.exe x php-%PHP_VERSION%.tar -y | find /v "Extracting"
  - dir
  - ren php-src-php-%PHP_VERSION% php-%PHP_VERSION%
  - cd php-%PHP_VERSION%
  - IF "%Platform%" == "x64" SET OUTDIR=x64\%OUTDIR%
  - mkdir %OUTDIR%
  - move ..\deps\bin\*.dll %OUTDIR%\
  - move ..\deps\bin\icudtl.dat %OUTDIR%\

build_script:
  - ps: >-
      If ($env:Platform -Match "x86") {
        $env:VCVARS_PLATFORM="x86"
        $env:ENV_PLATFORM="x86"
      } Else {
        $env:VCVARS_PLATFORM="amd64"
        $env:ENV_PLATFORM="x64"
      }
  - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
  - cd
  - echo Building PHP [%PHP_VERSION%]
  - '%PHP_SDK%\bin\phpsdk_setvars'
  - buildconf
  - configure --disable-all --enable-cli --with-iconv=yes --with-libxml=yes --with-dom=yes --enable-json=static --with-v8js %CONFIGURE_EXTRA%
  - nmake

after_build:
  - cd %OUTDIR%
  - 7z a %ARTIFACT_NAME% icudtl.dat icu*.dll v8.dll php_v8js.dll
  - ps: Push-AppveyorArtifact $env:ARTIFACT_NAME

test_script:
  - cd c:\projects\php-sdk\v8js-ci\vc15\%Platform%\php-%PHP_VERSION%
  - set NO_INTERACTION=1
  - set TEST_PHP_JUNIT=junit.xml
  - set REPORT_EXIT_STATUS=1
  - "%OUTDIR%\\php.exe run-tests.php -p %OUTDIR%\\php.exe ext/v8js/tests/ -d v8js.icudtl_dat_path=%OUTDIR%/icudtl.dat -d extension=php_v8js.dll -d extension_dir=%OUTDIR%\\ --show-diff"

on_finish:
  - cd c:\projects\php-sdk\v8js-ci\vc15\%Platform%\php-%PHP_VERSION%
  - ps: |
      # upload results to AppVeyor
      $wc = New-Object 'System.Net.WebClient'
      $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\junit.xml))

deploy:
  provider: S3
  access_key_id: AKIAJBJLBBZPMYOGVKEA
  secret_access_key:
    secure: N+jqdcvCOzqfrwL7ClIvcd9TkmQe9dghJwZMjLYtv7syVW5c4EU9YrqUbUUGmZ04
  bucket: win-phpv8
  set_public: true
  artifact: "*.zip"
  on:
    branch: php7