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

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: crowbook

  # TODO These are all the build jobs. Adjust as necessary. Comment out what you
  # don't need
  matrix:
    # MinGW
    - TARGET: i686-pc-windows-gnu
    - TARGET: x86_64-pc-windows-gnu

    # MSVC
#    - TARGET: i686-pc-windows-msvc
#    - TARGET: x86_64-pc-windows-msvc

    # Testing other channels
    - TARGET: x86_64-pc-windows-gnu
      RUST_VERSION: nightly
    - TARGET: x86_64-pc-windows-msvc
      RUST_VERSION: nightly

install:
  - ps: >-
      If ($Env:TARGET -eq 'x86_64-pc-windows-gnu') {
        $Env:PATH += ';C:\msys64\mingw64\bin'
      } ElseIf ($Env:TARGET -eq 'i686-pc-windows-gnu') {
        $Env:PATH += ';C:\msys64\mingw32\bin'
      }
  - 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 build --no-default-features --features="binary proofread" --target %TARGET% &&
      cargo build --no-default-features --features="binary proofread" --target %TARGET% --release &&
      cargo test --no-default-features --features="binary proofread"  --target %TARGET% &&
      cargo test --no-default-features --features="binary proofread"  --target %TARGET% --release
  )
#      cargo run --no-default-features --features="binary proofread" --target %TARGET% -- --help
 

before_deploy:
  # TODO Update this to build the artifacts that matter to you
  - cargo rustc --target %TARGET% --no-default-features --features="binary proofread" --release --bin crowbook -- -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: aPjwgGIsU16/omdaviAuV3F6FiLNFF9PaX4ju8OtOnOgGQMayyoCga1VhUuNNoWo
  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

notifications:
  - provider: Email
    on_build_success: false

# Building is done in the test phase, so we disable Appveyor's build phase.
build: false
