# Appveyor configuration file for bash build of packs
version: '{build}'
skip_tags: true
environment:
    # It's prefered to have the GithubAuthToken (encrypted) set in the UI. Follow this guide for the instructions https://www.appveyor.com/docs/deployment/github/#provider-settings.
    CommitTimestamp: 0
    CYG_MIRROR: http://cygwin.mirror.constant.com
    CYG_PACKAGES: bash,php,dos2unix
    matrix:
        - BUILD_TYPE: 64bit
          CYG_ROOT: C:\mycygwin64
          CYG_CACHE: C:\mycygwin64\var\cache\setup
          CYG_SETUP: setup-x86_64.exe
          BASH: C:\mycygwin64\bin\bash
#        - BUILD_TYPE: 32bit
#          CYG_ROOT: C:\mycygwin
#          CYG_CACHE: C:\mycygwin\var\cache\setup
#          CYG_SETUP: setup-x86.exe
#          BASH: C:\mycygwin\bin\bash

# Cache Cygwin files to speed up build
cache:
    - '%CYG_SETUP%'
    - '%CYG_CACHE%'
clone_depth: 1

# We want to convert line endings to CRLF because thats what the txt files in the zip should end up as
init:
    - git config --global core.autocrlf true
# Use appveyor http proxy
    - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-http-proxy.ps1'))
# Allows RDP
#    - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

# Install needed build dependencies
install:
    - if defined appveyor_repo_commit_message_extended (echo "Found commit description!") else (set appveyor_repo_commit_message_extended='No description was added to this commit.') # If there's is a description set it to that, otherwise leave it.
    - ps: $env:CommitTimestamp=[System.DateTime]::UtcNow # Readable timestamp
    - ps: if (Test-Path Env:\CYG_ROOT) { Start-FileDownload "http://cygwin.com/$env:CYG_SETUP" -FileName "cygsetup.exe" -Timeout 30000 }
    - ps: if ((Get-Content "cygsetup.exe") -eq $Null) { Copy-Item "$env:CYG_SETUP" -Destination "cygsetup.exe" -Force } else { Copy-Item "cygsetup.exe" -Destination "$env:CYG_SETUP" -Force }
    # Quiet-mode isn't really working but this does work.
    - if defined CYG_ROOT ((%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" --upgrade-also) > $null)
build_script:
    - if defined BASH (%BASH% -lc "cd $(cygpath ${APPVEYOR_BUILD_FOLDER}) && dos2unix build.sh && sh build.sh")
    - xcopy %APPVEYOR_BUILD_FOLDER%\Enhancement %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q
    - xcopy %APPVEYOR_BUILD_FOLDER%\Enthusiast %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q
    - xcopy %APPVEYOR_BUILD_FOLDER%\Modifications %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q
    - xcopy %APPVEYOR_BUILD_FOLDER%\Performance %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q
    - xcopy %APPVEYOR_BUILD_FOLDER%\Quality %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q
    - xcopy %APPVEYOR_BUILD_FOLDER%\Workaround %APPVEYOR_BUILD_FOLDER%\AppVeyor /E /I /Q
# waits for RDP confirmation before finishing
#on_finish:
#    - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

artifacts:
    - path: AppVeyor
      name: 'graphicPacks_2-$(appveyor_build_version)'
      type: zip

deploy:
    tag: "appveyor$(appveyor_build_version)"
    # Tag needs to be the same otherwise it won't overwrite.
    release: "Graphic Packs: version 2-$(appveyor_build_version)"
    description: "Updated to **v2-$(appveyor_build_version)** at $(CommitTimestamp) (UTC)\n\n### Changelog:\n**$(appveyor_repo_commit_message)** - Commit $(appveyor_repo_commit) by $(appveyor_repo_commit_author):\n```\n$(appveyor_repo_commit_message_extended)\n```\n#### [Installation instructions](https://$(appveyor_account_name).github.io/$(appveyor_project_name)/) - [Previous versions](https://ci.appveyor.com/project/$(appveyor_account_name)/cemu-graphic-packs/history)"
    provider: GitHub
    # Auth token is generated by using https://www.appveyor.com/docs/deployment/github/#provider-settings
    auth_token: $(GithubAuthToken)
    prerelease: false
    # Makes it so that it overwrites the previous files.
    force_update: true
    artifact: /.*\.zip/
    on:
      branch: master