# Based on the "trust" template v0.1.1
# https://github.com/japaric/trust/tree/v0.1.1

os: Visual Studio 2015

environment:
  global:
  # TODO This is the Rust channel that build jobs will use by default but can be
  # overridden on a case by case basis down below
    RUST_VERSION: stable

    # TODO Update this to match the name of your project.
    CRATE_NAME: gutenberg

  matrix:
    # GNU
    - channel: stable
      target: x86_64-pc-windows-msvc
      TOOLCHAIN: msvc
      PLATFORM: x86_64

install:
  - if "%TOOLCHAIN%" == "msvc" if "%PLATFORM%" == "i686" call "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat"
  - if "%TOOLCHAIN%" == "msvc" if "%PLATFORM%" == "x86_64" "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
  - if "%TOOLCHAIN%" == "msvc" if "%PLATFORM%" == "x86_64" call "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
  - if "%TOOLCHAIN%" == "msys" set PATH=C:\msys64\mingw%MSYS_BITS%\bin;C:\msys64\usr\bin;%PATH%
  - curl -sSf -o rustup-init.exe https://win.rustup.rs/
  - rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION%
  - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
  - rustc -Vv
  - cargo -V

# TODO This is the "test phase", tweak it as you see fit
test_script:
  # we don't run the "test phase" when doing deploys
  - if [%APPVEYOR_REPO_TAG%]==[false] (
      cargo test --all --target %TARGET%
    )

before_deploy:
  # TODO Update this to build the artifacts that matter to you
  - cargo rustc --target %TARGET% --release --bin gutenberg -- -C lto
  - ps: ci\before_deploy.ps1

deploy:
  artifact: /.*\.zip/
  # TODO update `auth_token.secure`
  # - Create a `public_repo` GitHub token. Go to: https://github.com/settings/tokens/new
  # - Encrypt it. Go to https://ci.appveyor.com/tools/encrypt
  # - Paste the output down here
  auth_token:
    secure: YCRPSTItx+m/3jnDfai52dEZNLYUTSEExF2lZoffULDzlv/t2jOR1fzSSIEi/xyB
  description: ''
  on:
    # TODO Here you can pick which targets will generate binary releases
    # In this example, there are some targets that are tested using the stable
    # and nightly channels. This condition makes sure there is only one release
    # for such targets and that's generated using the stable channel
    RUST_VERSION: stable
    appveyor_repo_tag: true
  provider: GitHub

cache:
  - C:\Users\appveyor\.cargo\registry
  - target

branches:
  only:
    # Release tags
    - /^v\d+\.\d+\.\d+.*$/
    - master

# disable automatic builds
build: false
