language: cpp
os:
  - linux
  - osx
sudo: required
dist: trusty
osx_image: xcode8
git:
  submodules: false
addons:
  ssh_known_hosts:
    - github.com
  apt:
    packages:
      - libfreetype6-dev
      - libevent-dev
      - libsqlite3-dev
      - libirrlicht-dev
      - liblua5.2-dev
      - libgl1-mesa-dev
      - libglu-dev
before_install:
  - git submodule update --init --recursive
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew update;
      brew install freetype libevent sqlite irrlicht lua dylibbundler;
      curl --location --retry 5 https://github.com/premake/premake-core/releases/download/v5.0.0-alpha10/premake-5.0.0-alpha10-macosx.tar.gz | tar zfx -;
    fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget -O - https://github.com/premake/premake-core/releases/download/v5.0.0-alpha10/premake-5.0.0-alpha10-linux.tar.gz | tar zfx -; fi
script:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./premake5 gmake --cc=clang; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./premake5 gmake; fi
  - cd build
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sed -i 's/-llua/-llua5.2/g' ygopro.make; fi
  - make config=release ygopro
  - cd ..
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then mv bin/release/ygopro ./; strip ygopro; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      mkdir -p ygopro.app/Contents/MacOS;
      mv bin/release/ygopro ygopro.app/Contents/MacOS;
      dylibbundler -x ygopro.app/Contents/MacOS/ygopro -b -d ygopro.app/Contents/Frameworks/ -p @executable_path/../Frameworks/ -cd;
      strip ygopro.app/Contents/MacOS/ygopro;
      mkdir ygopro.app/Contents/Resources;
      mv premake/gframe/ygopro.icns ygopro.app/Contents/Resources/Icon.icns;
      defaults write "$PWD/ygopro.app/Contents/Info.plist" "CFBundleIconFile" "Icon.icns";
      echo $CERTIFICATE | base64 --decode --output cert.p12;
      security create-keychain -p "" build.keychain;
      security unlock-keychain -p "" build.keychain;
      security import cert.p12 -k build.keychain -P "$CERTIFICATE_PASSWORD" -T /usr/bin/codesign;
      codesign --deep --keychain build.keychain --sign "$(security find-identity -v -p codesigning build.keychain | head -1 | grep -o '".*"' | tr -d '"')" ygopro.app;
    fi
before_deploy:
  - curl --location --retry 5 'https://github.com/mycard/ygopro-database/archive/master.tar.gz' | tar --strip-components=1 -zxf - ygopro-database-master/locales
  - cp locales/zh-CN/* .
  - mkdir replay
  - mkdir pics
  - curl --location --retry 5 --output 'ygopro-images-zh-CN.zip' https://github.com/mycard/ygopro-images/releases/download/latest/ygopro-images-zh-CN.zip
  - unzip -q -d pics ygopro-images-zh-CN.zip
  - curl --location --retry 5 --output 'ygopro-starter-pack-master.zip' https://github.com/mycard/ygopro-starter-pack/archive/master.zip
  - unzip -q ygopro-starter-pack-master.zip
  - cp -r ygopro-starter-pack-master/* .
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then tar -zcf ygopro-$TRAVIS_TAG-$TRAVIS_OS_NAME.tar.gz --format=posix --exclude='.git*' ygopro.app LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics replay; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tar -zcf ygopro-$TRAVIS_TAG-$TRAVIS_OS_NAME.tar.gz --format=posix --exclude='.git*' ygopro LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics replay; fi
deploy:
  provider: releases
  file:
    - ygopro-$TRAVIS_TAG-$TRAVIS_OS_NAME.tar.gz
  api_key:
    secure: "Js+zijIaucVvTm/knFOKLQ0KTdn93g/xgka8J4EQymgqM7JizL15sHSlVKPhqIFfMQYi/AUjNs7ikzYRO4QCe09GbYniSnFQhHPyGd7bb1tzJ5a7s8MdbP6rGFZ/v/SEbuTqDCsxtGGCfy9F/WMJ1J7o6dmuFfrAXEDzTtXrQrs="
  skip_cleanup: true
  on:
    tags: true
branches:
  only:
    - master
    - /\d+\..+/
