# Windows Build Configuration for AppVeyor
# http://www.appveyor.com/docs/appveyor-yml

# version format
version: "{build}"

# The most recent compiler gives the most interesting new results.
# Put it first so we get its feedback first.
os:
  - Visual Studio 2017
  - Visual Studio 2015

platform:
  - x64

configuration:
  - Debug
  - Release

branches:
  only:
    - master

# Travis advances the master-tot tag to current top of the tree after
# each push into the master branch, because it relies on that tag to
# upload build artifacts to the master-tot release. This will cause
# double testing for each push on Appveyor: one for the push, one for
# the tag advance. Disable testing tags.
skip_tags: true

clone_depth: 1

matrix:
  fast_finish: true # Show final status immediately if a test fails.
  exclude:
    - os: Visual Studio 2015
      configuration: Debug

# scripts that run after cloning repository
install:
  # Install ninja
  - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip"
  - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip
  - 7z x ninja.zip -oC:\ninja > nul
  - set PATH=C:\ninja;%PATH%

before_build:
  - git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
  - git clone --depth=1 https://github.com/google/googletest.git external/googletest
  - git clone --depth=1 https://github.com/google/effcee.git external/effcee
  - git clone --depth=1 https://github.com/google/re2.git external/re2
  # Set path and environment variables for the current Visual Studio version
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64)
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64)

build:
  parallel: true  # enable MSBuild parallel builds
  verbosity: minimal

build_script:
  - mkdir build && cd build
  - cmake -GNinja -DSPIRV_BUILD_COMPRESSION=ON -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DCMAKE_INSTALL_PREFIX=install ..
  - ninja install

test_script:
  - ctest -C %CONFIGURATION% --output-on-failure --timeout 300

after_test:
  # Zip build artifacts for uploading and deploying
  - cd install
  - 7z a SPIRV-Tools-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip *\*

artifacts:
  - path: build\install\*.zip
    name: artifacts-zip

deploy:
  - provider: GitHub
    auth_token:
      secure: TMfcScKzzFIm1YgeV/PwCRXFDCw8Xm0wY2Vb2FU6WKlbzb5eUITTpr6I5vHPnAxS
    release: master-tot
    description: "Continuous build of the latest master branch by Appveyor and Travis CI"
    artifact: artifacts-zip
    draft: false
    prerelease: false
    force_update: true
    on:
      branch: master
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
