xargo 0.1.5

Effortless cross compilation to custom bare-metal targets like ARM Cortex-M
environment:
  global:
    PROJECT_NAME: xargo
  matrix:
    # Stable channel
    - TARGET: i686-pc-windows-msvc
      CHANNEL: stable
    - TARGET: x86_64-pc-windows-msvc
      CHANNEL: stable
    # Beta channel
    - TARGET: i686-pc-windows-msvc
      CHANNEL: beta
    - TARGET: x86_64-pc-windows-msvc
      CHANNEL: beta
    # Nightly channel
    - TARGET: i686-pc-windows-msvc
      CHANNEL: nightly
    - TARGET: x86_64-pc-windows-msvc
      CHANNEL: nightly

install:
  - ps: Start-FileDownload "https://static.rust-lang.org/dist/channel-rust-stable"
  - ps: $env:RUST_VERSION = Get-Content channel-rust-stable | select -first 1 | %{$_.split('-')[1]}
  - if NOT "%CHANNEL%" == "stable" set RUST_VERSION=%CHANNEL%
  - ps: Start-FileDownload "https://static.rust-lang.org/dist/rust-${env:RUST_VERSION}-${env:TARGET}.exe"
  - rust-%RUST_VERSION%-%TARGET%.exe /VERYSILENT /NORESTART /DIR="C:\Program Files (x86)\Rust"
  - SET PATH=%PATH%;C:\Program Files (x86)\Rust\bin
  - rustc -V
  - cargo -V

build: false

test_script:
  - cargo build --verbose
  - if "%CHANNEL%" == "nightly" cargo test

before_deploy:
  # Generate artifacts for release
  - cargo build --release
  - mkdir staging
  - copy target\release\xargo.exe staging
  - cd staging
  - 7z a ../%PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%TARGET%.zip *
  - appveyor PushArtifact ../%PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%TARGET%.zip

deploy:
  description: 'Windows release'
  artifact: /.*\.zip/
  auth_token:
    secure: 4nKAE15I9/mtd8y+T6F31uvKGXjt7M2kqXTbLTzmZzRQjvm9LjbDxxEyiS/GSZWZ
  provider: GitHub
  # deploy when a new tag is pushed and only on the stable channel
  on:
    CHANNEL: stable
    appveyor_repo_tag: true

branches:
  only:
    - master