# Reference: http://www.appveyor.com/docs/appveyor-yml
# Notes:
#   - Indent each level of configuration with 2 spaces. Do not use tabs!

#---------------------------------#
#      general configuration      #
#---------------------------------#

version: 1.0.{build}

branches:
  only:
    - master
  except:
    - gh-pages

#---------------------------------#
#    environment configuration    #
#---------------------------------#

matrix:
  fast_finish: true

os: Visual Studio 2017

platform:
  - x86
  - x64

configuration:
  - Release

environment:
  VS_VERSION: vs2017
  DEPS_PATH: '%APPVEYOR_BUILD_FOLDER%\deps'
  LLVM_PATH: '%APPVEYOR_BUILD_FOLDER%\deps\llvm'
  BUILD_PATH: '%APPVEYOR_BUILD_FOLDER%\build\%VS_VERSION%'
  LIB_PATH: '%APPVEYOR_BUILD_FOLDER%\build\%VS_VERSION%\lib\%CONFIGURATION%_%PLATFORM%'
  ARTIFACT_NAME: '%APPVEYOR_PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%VS_VERSION%-%PLATFORM%.zip'
  GITHUB_ACCESS_TOKEN:
    secure: CrxPDgxTKC9ZRvFjttpRPO+e1DT8s0Zkk9HrAmHOIzDkOfFbbu1iTm/yJjZ2eDcd

init:
  - git config --global core.autocrlf true

install:
  - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %PLATFORM%
  - build\premake5.exe --file=build\scripts\LLVM.lua download_llvm --arch=%PLATFORM%

build_script:
  - build\premake5.exe --file=build\premake5.lua %VS_VERSION% --arch=%PLATFORM%
  - msbuild %BUILD_PATH%\CppSharp.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /verbosity:minimal

#---------------------------------#
#    parser bindings generation   #
#---------------------------------#

on_success:
  #- git config --global user.name "CppSharp CI"
  #- git config --global user.email "joao+cppsharp-ci@tritao.eu"
  #- git config --global credential.helper store
  #- ps: Add-Content "$env:USERPROFILE\.git-credentials" "https://$($env:GITHUB_ACCESS_TOKEN):x-oauth-basic@github.com`n"
  #- git remote set-url origin https://github.com/mono/CppSharp.git
  #- git checkout master
  #- '%LIB_PATH%\CppSharp.Parser.Gen.exe'
  #- 'git commit -a -m "CI: Re-generated the parser bindings"'
  #- git push

#---------------------------------#
#      artifacts configuration    #
#---------------------------------#

after_build:
  - echo 'Preparing artifacts...'
  - 7z a %ARTIFACT_NAME% %LIB_PATH%\CppSharp* %LIB_PATH%\lib
  - appveyor PushArtifact %ARTIFACT_NAME%

#---------------------------------#
#     deployment configuration    #
#---------------------------------#

deploy:
  release: 'CppSharp'
  description: "Latest successful CI builds of branch 'master'"
  provider: GitHub
  auth_token:
    secure: tSYxyXeLtE0f6ZsXsGaHZEAw5Nj4TcgN/rx8uCfPnRjcE55OLAVn/8WXEiovNXLt
  prerelease: true
  on:
    branch: master
    appveyor_repo_tag: true