jobs:
- job: ${{ parameters.name }}
pool:
vmImage: ${{ parameters.vmImage }}
strategy:
matrix:
stable:
rust_version: stable
beta:
rust_version: beta
nightly:
rust_version: nightly
maxParallel: 3
steps:
- ${{ if ne(parameters.name, 'Windows') }}:
- script: |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $(rust_version)
echo "##vso[task.setvariable variable=PATH]$PATH:$HOME/.cargo/bin"
displayName: 'Install Rust ($(rust_version))'
- ${{ if eq(parameters.name, 'Windows') }}:
- script: |
curl -sSf -o rustup-init.exe https://win.rustup.rs
rustup-init.exe -y --default-toolchain $(rust_version)
echo ##vso[task.setvariable variable=PATH]%PATH%;%USERPROFILE%\.cargo\bin
displayName: 'Install Rust ($(rust_version))'
- bash: |
rustup default $(rust_version)
rustc -Vv && cargo -V
rustup component add rustfmt
if [[ "$rust_version" == "stable" ]]; then
rustup component add clippy
fi
displayName: 'Rust/Cargo Version Information'
- script: |
cargo fmt --all -- --check
displayName: 'Check Code Style'
- bash: |
cargo build --no-default-features
cargo build
cargo build --features tfidf
cargo build --features textrank
cargo build --all-features --all
cargo test --all-features --all
if [[ "$rust_version" == "stable" ]]; then
cargo clippy --all-features
cargo bench --all-features -- --test
fi
displayName: 'Unit Tests'
- ${{ if eq(parameters.name, 'Linux') }}:
- script: |
cargo install cargo-tarpaulin
cargo tarpaulin --all-features --out Xml
bash <(curl -s https://codecov.io/bash) -t 83e4b212-e560-4400-9160-fb91be0e4753
displayName: 'Code Coverage'