version: '{build}'

environment:
  irrklang_pro: 1
  access_token:
    secure: EQ9miMjfX/QAoBvgc6D+JLmHatLyxOEKZ/uo68QijxWW5Gp4MzB/pOH9+u2GlDVO

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

  # environment and system dependency
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/premake/premake-core/releases/download/v5.0.0-alpha12/premake-5.0.0-alpha12-windows.zip ; exit 0"
  - 7z x premake-5.0.0-alpha12-windows.zip
  
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz ; exit 0"
  - tar xf libevent-2.0.22-stable.tar.gz
  - move libevent-2.0.22-stable event
  - xcopy /E event\WIN32-Code event\include
  
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name http://downloads.sourceforge.net/freetype/freetype-2.8.1.tar.bz2 ; exit 0"
  - tar xf freetype-2.8.1.tar.bz2
  - move freetype-2.8.1 freetype
  
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name http://downloads.sourceforge.net/irrlicht/irrlicht-1.8.4.zip ; exit 0"
  - 7z x irrlicht-1.8.4.zip
  - md irrlicht
  - move irrlicht-1.8.4\source\Irrlicht irrlicht\src
  - move irrlicht-1.8.4\include irrlicht\include
  
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://www.lua.org/ftp/lua-5.3.4.tar.gz ; exit 0"
  - tar xf lua-5.3.4.tar.gz
  - move lua-5.3.4\src lua
  
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://www.sqlite.org/2017/sqlite-amalgamation-3210000.zip ; exit 0"
  - 7z x sqlite-amalgamation-3210000.zip
  - move sqlite-amalgamation-3210000 sqlite3
  
  - git clone --depth=1 https://%access_token%@github.com/purerosefallen/irrklang
  - mv -f irrklang/plugins/ikpmp3 .

  # let premake happy
  - cp -rf premake/* .
  
  # patch irrlicht & ikpmp3
  - patch -p0 < irrlicht\irrlicht.patch

  # premake
  - premake5 vs2015
  
configuration: Release

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

after_build:
  - mv -f bin/release/ygopro.exe .

  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/purerosefallen/windbot/archive/master.zip ; exit 0"
  - 7z x windbot-master.zip
  - cd windbot-master
  - msbuild /property:Configuration=Release /property:Platform=x86
  - rm -rf bin/Release/WindBot.exe.config
  - mv -f bin/Release ../WindBot
  - mv -f BotWrapper/bin/Release/Bot.exe ./..
  - mv -f BotWrapper/bin/Release/Bot.conf ./..
  - cd ..

  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/HuangYuNan/ygopro222-images/archive/master.zip ; exit 0"
  - 7z x ygopro222-images-master.zip
  - mv -f ygopro222-images-master pics
  
  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/purerosefallen/update-koishipro/archive/master.zip ; exit 0"
  - 7z x update-koishipro-master.zip
  - mv -f update-koishipro-master update-koishipro

  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/moecube/ygopro-starter-pack/archive/master.zip ; exit 0"
  - 7z x ygopro-starter-pack-master.zip
  - cp -rf ygopro-starter-pack-master/* .

  - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/purerosefallen/ygopro-222DIY-data/archive/master.zip ; exit 0"
  - 7z x -y ygopro-222DIY-data-master.zip
  - rm -rf sound
  - mv -f ygopro-222DIY-data-master/sound .
  - rm -rf sound/custom sound/BGM/custom

  - rm -rf pics/thumbnail pics/*.db
  - mkdir replay

  - 7z a -mx9 -xr!.git* YGOPro-by-Koishi.7z ygopro.exe LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics update-koishipro replay WindBot Bot.exe bot.conf
  - cp -rf YGOPro-by-Koishi.7z YGOPro-by-Koishi-with-sound.7z
  - 7z a -mx9 -xr!.git* YGOPro-by-Koishi-with-sound.7z sound

test: off

deploy:
  description: 'Automatic build commit $(APPVEYOR_REPO_COMMIT) $(APPVEYOR_REPO_COMMIT_TIMESTAMP)'
  provider: GitHub
  force_update: true
  auth_token: $(access_token)
  on:
    appveyor_repo_tag: true

artifacts:
  - path: ygopro.exe
    name: ygopro client
  - path: YGOPro-by-Koishi.7z
    name: ygopro full repack
  - path: YGOPro-by-Koishi-with-sound.7z
    name: ygopro full repack with sound

cache:
  - premake-5.0.0-alpha12-windows.zip
  - libevent-2.0.22-stable.tar.gz
  - freetype-2.8.1.tar.bz2
  - irrlicht-1.8.4.zip
  - lua-5.3.4.tar.gz
  - sqlite-amalgamation-3210000.zip
  - Redis-x64-3.2.100.zip
