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

# version format
version: 1.0.{build}-{branch}

# branches to build
branches:
  # whitelist
  # only:
  #   - master

  # blacklist
  except:
    - gh-pages

# Do not build on tags (GitHub only)
skip_tags: true

skip_commits:
  files:
    - docs/*
    - LICENSE
    - README.md

pull_requests:
  do_not_increment_build_number: true

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

# Operating system (build VM template)
os: Visual Studio 2017

# scripts that are called at very beginning, before repo cloning
init:
  - git config --global core.autocrlf input

# clone directory
clone_folder: c:\dev\xenia

# environment variables
environment:
  my_var1: value1
  my_var2: value2

# build cache to preserve files/folders between builds
#cache:

# scripts that run after cloning repository
install:
  - cmd: set PATH=C:\Program Files (x86)\MSBuild\14.0\Bin;%PATH%
  - cmd: xb.bat setup


#---------------------------------#
#       build configuration       #
#---------------------------------#

# build platform, i.e. x86, x64, Any CPU. This setting is optional.
platform: Windows

# build Configuration, i.e. Debug, Release, etc.
configuration:
  - Release
  - Checked

#build:
#  parallel: true                  # enable MSBuild parallel builds
#  project: build\xenia.sln        # path to Visual Studio solution or project
#
#  # MSBuild verbosity level
#  #verbosity: quiet|minimal|normal|detailed
#  verbosity: minimal

# scripts to run before build
#before_build:
  #- xb.bat lint --all

# scripts to run after build
after_build:
  - 7z a xenia-%appveyor_repo_branch%.zip LICENSE %APPVEYOR_BUILD_FOLDER%\build\bin\%PLATFORM%\%CONFIGURATION%\xenia.exe %APPVEYOR_BUILD_FOLDER%\build\bin\%PLATFORM%\%CONFIGURATION%\xenia.pdb

# to run your custom scripts instead of automatic MSBuild
# We also compile the tests here instead of later on.
build_script:
  - cmd: xb.bat build --config=%CONFIGURATION% --target=src\xenia-app --target=tests\xenia-cpu-ppc-tests

# to disable automatic builds
#build: off


#---------------------------------#
#       tests configuration       #
#---------------------------------#

# scripts to run before tests
before_test:
  - cmd: xb.bat gentests

# scripts to run after tests
after_test:

# to run your custom scripts instead of automatic tests
test_script:
  - cmd: xb.bat test --config=%CONFIGURATION% --no_build

# to disable automatic tests
#test: off


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

artifacts:
  # pushing a single file
  #- path: test.zip

  # pushing a single file with environment variable in path and "Deployment name" specified
  #- path: MyProject\bin\$(configuration)
  #  name: myapp

  # pushing entire folder as a zip archive
  #- path: logs

  # pushing all *.nupkg files in directory
  #- path: out\*.nupkg

  - path: xenia-cpu-ppc-test.log
  - path: xenia-$(appveyor_repo_branch).zip


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

# providers: Local, FTP, WebDeploy, AzureCS, AzureBlob, S3, NuGet, Environment
# provider names are case-sensitive!
deploy:
  - provider: Environment
    name: xenia-master
    release: xenia-$(appveyor_repo_branch)-v$(appveyor_build_version)
    artifact: xenia-$(appveyor_repo_branch).zip
    draft: false
    prerelease: true
    on:
      branch: master                # release from master branch only
      configuration: release        # deploy release builds only
      appveyor_repo_tag: true       # deploy on tag push only
      is_not_pr: true               # don't deploy pull requests

# scripts to run before deployment
#before_deploy:

# scripts to run after deployment
#after_deploy:

# to run your custom scripts instead of provider deployments
#deploy_script:

# to disable deployment
# deploy: off


#---------------------------------#
#        global handlers          #
#---------------------------------#

# on successful build
on_success:

# on build failure
on_failure:

# after build failure or success
on_finish:


#---------------------------------#
#         notifications           #
#---------------------------------#

# notifications:
#   # Email
#   - provider: Email
#     to:
#       - user1@email.com
#       - user2@email.com
#     subject: 'Build {{status}}'                  # optional
#     message: "{{message}}, {{commitId}}, ..."    # optional
#     on_build_status_changed: true

#   # Webhook
#   - provider: Webhook
#     url: http://www.myhook2.com
#     headers:
#       User-Agent: myapp 1.0
#       Authorization:
#         secure: GhD+5xhLz/tkYY6AO3fcfQ==
#     on_build_success: false
#     on_build_failure: true
#     on_build_status_changed: true