environment:
  global:
    PROJECT_NAME: lazy_static
    # When this was added there were revocation check failures when using the
    # libcurl backend as libcurl checks by default, but rustup doesn't provide the
    # switch to turn this off. Switch to Hyper which looks to not check for
    # revocation by default like libcurl does.
    RUSTUP_USE_REQWEST: 1
    CARGO_HTTP_CHECK_REVOKE: false
  matrix:
    # Stable channel
    - TARGET: i686-pc-windows-gnu
      CHANNEL: stable
    - TARGET: i686-pc-windows-msvc
      CHANNEL: stable
    - TARGET: x86_64-pc-windows-gnu
      CHANNEL: stable
    - TARGET: x86_64-pc-windows-msvc
      CHANNEL: stable
    # Beta channel
    - TARGET: i686-pc-windows-gnu
      CHANNEL: beta
    - TARGET: i686-pc-windows-msvc
      CHANNEL: beta
    - TARGET: x86_64-pc-windows-gnu
      CHANNEL: beta
    - TARGET: x86_64-pc-windows-msvc
      CHANNEL: beta
    # Nightly channel
    - TARGET: i686-pc-windows-gnu
      CHANNEL: nightly
    - TARGET: i686-pc-windows-msvc
      CHANNEL: nightly
    - TARGET: x86_64-pc-windows-gnu
      CHANNEL: nightly
    - TARGET: x86_64-pc-windows-msvc
      CHANNEL: nightly

# Install Rust and Cargo
# (Based on from https://github.com/rust-lang/libc/blob/master/appveyor.yml)
install:
  - appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
  - rustup-init.exe -y --default-toolchain %CHANNEL% --default-host %TARGET%
  - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
  - if "%TARGET%" == "i686-pc-windows-gnu" set PATH=%PATH%;C:\msys64\mingw32\bin
  - if "%TARGET%" == "x86_64-pc-windows-gnu" set PATH=%PATH%;C:\msys64\mingw64\bin
  - rustc -V
  - cargo -V

build: false

test_script:
  - cargo build --verbose
  - cargo test
  - if [%CHANNEL%]==[nightly] (
      cargo clean &&
      cargo build --verbose --features "compiletest" &&
      cargo test --features "compiletest"
    )
