diff --git a/appveyor.yml b/appveyor.yml index ebb689b1..777d7bed 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -15,3 +15,74 @@ build: false test_script: - cargo build --verbose - cargo test --verbose + + +environment: + global: + PROJECT_NAME: xrep + matrix: + # 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: + - 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 + - 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 + +# Equivalent to Travis' `script` phase +# TODO modify this phase as you see fit +test_script: + - cargo build --verbose + - cargo test + +before_deploy: + # Generate artifacts for release + - RUSTFLAGS="-C target-feature=+ssse3" cargo build --release --features simd-accel + - mkdir staging + # TODO update this part to copy the artifacts that make sense for your project + - copy target\release\xrep.exe staging + - cd staging + # release zipfile will look like 'rust-everywhere-v1.2.3-x86_64-pc-windows-msvc' + - 7z a ../%PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%TARGET%.zip * + - appveyor PushArtifact ../%PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%TARGET%.zip + +deploy: + description: 'Windows release' + # All the zipped artifacts will be deployed + artifact: /.*\.zip/ + auth_token: + secure: vv4vBCEosGlyQjaEC1+kraP2P6O4CQSa+Tw50oHWFTGcmuXxaWS0/yEXbxsIRLpw + provider: GitHub + # deploy when a new tag is pushed and only on the stable channel + on: + # channel to use to produce the release artifacts + # NOTE make sure you only release *once* per target + # TODO you may want to pick a different channel + CHANNEL: nightly + appveyor_repo_tag: true + +branches: + only: + - appveyor + - /\d+\.\d+\.\d+/ + except: + - master