# shallow clone
clone_depth: 10

cache:
  - C:\ProgramData\chocolatey\bin -> appveyor.yml
  - C:\ProgramData\chocolatey\lib -> appveyor.yml

os: Visual Studio 2017

platform:
  - x64

configuration:
  - Release

install:
  - git submodule update --init --recursive

before_build:
  - mkdir build
  - cd build
  - cmake -G "Visual Studio 15 2017 Win64" -DCITRA_USE_BUNDLED_QT=1 -DCITRA_USE_BUNDLED_SDL2=1 -DCMAKE_USE_OPENSSL=0 ..
  - cd ..

build:
  project: build/citra.sln
  parallel: true

after_build:
  - ps: |
        $GITDATE = $(git show -s --date=short --format='%ad') -replace "-",""
        $GITREV = $(git show -s --format='%h')
        $GIT_LONG_HASH = $(git rev-parse HEAD)
        # Where are these spaces coming from? Regardless, let's remove them
        $MSVC_BUILD_NAME = "citra-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
        $MSVC_BUILD_PDB = "citra-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
        $MSVC_SEVENZIP = "citra-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
        $BINTRAY_VERSION = "nightly-$GIT_LONG_HASH" -replace " ", ""

        # set the build names as env vars so the artifacts can upload them
        $env:MSVC_BUILD_NAME = $MSVC_BUILD_NAME
        $env:MSVC_BUILD_PDB = $MSVC_BUILD_PDB
        $env:MSVC_SEVENZIP = $MSVC_SEVENZIP
        $env:GITREV = $GITREV

        7z a -tzip $MSVC_BUILD_PDB .\build\bin\release\*.pdb
        rm .\build\bin\release\*.pdb

        # Find out which kind of release we are producing by tag name
        if ($env:APPVEYOR_REPO_TAG_NAME) {
            $RELEASE_DIST, $RELEASE_VERSION = $env:APPVEYOR_REPO_TAG_NAME.split('-')
        } else {
            # There is no repo tag - make assumptions
            $RELEASE_DIST = "head"
        }

        mkdir $RELEASE_DIST
        Copy-Item .\build\bin\release\* -Destination $RELEASE_DIST -Recurse
        Copy-Item .\license.txt -Destination $RELEASE_DIST
        Copy-Item .\README.md -Destination $RELEASE_DIST

        7z a -tzip $MSVC_BUILD_NAME $RELEASE_DIST\*
        7z a $MSVC_SEVENZIP $RELEASE_DIST

test_script:
  - cd build && ctest -VV -C Release && cd ..

artifacts:
  - path: $(MSVC_BUILD_NAME)
    name: msvcbuild
    type: zip
  - path: $(MSVC_BUILD_PDB)
    name: msvcdebug
    type: zip
  - path: $(MSVC_SEVENZIP)
    name: msvcupdate

deploy:
  provider: GitHub
  release: $(appveyor_repo_tag_name)
  auth_token:
    secure: "dbpsMC/MgPKWFNJCXpQl4cR8FYhepkPLjgNp/pRMktZ8oLKTqPYErfreaIxb/4P1"
  artifact: msvcupdate,msvcbuild
  draft: false
  prerelease: false
  on:
    appveyor_repo_tag: true
