jobs: - job: "Clippy" pool: vmImage: "ubuntu-16.04" container: "rust:latest" steps: - script: rustup component add clippy displayName: Install Clippy - script: cargo clippy --all displayName: Run clippy - job: "Rustfmt" pool: vmImage: "ubuntu-16.04" container: "rust:latest" condition: eq(variables['Build.Reason'], 'PullRequest') steps: - script: rustup component add rustfmt displayName: Install Rustfmt - script: cargo fmt --all -- --check displayName: Run Rustfmt - job: "Bench" pool: vmImage: "ubuntu-16.04" container: "rust:latest" condition: eq(variables['Build.Reason'], 'PullRequest') steps: - script: cargo bench displayName: Run benchmark - job: "Test" strategy: matrix: windows-stable: imageName: "vs2017-win2016" rustup_toolchain: stable mac-stable: imageName: "macos-10.13" rustup_toolchain: stable linux-stable: imageName: "ubuntu-16.04" rustup_toolchain: stable linux-beta: imageName: "ubuntu-16.04" rustup_toolchain: beta linux-nightly: imageName: "ubuntu-16.04" rustup_toolchain: nightly pool: vmImage: "ubuntu-16.04" steps: - script: | curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin" displayName: Install rust condition: ne( variables['Agent.OS'], 'Windows_NT' ) - script: | curl -sSf -o rustup-init.exe https://win.rustup.rs rustup-init.exe -y --default-toolchain %RUSTUP_TOOLCHAIN% echo "##vso[task.setvariable variable=PATH;]%PATH%;%USERPROFILE%\.cargo\bin" displayName: Windows install rust condition: eq( variables['Agent.OS'], 'Windows_NT' ) - script: cargo build --all displayName: Cargo build # Until env stubbing is solved, make tests run on a single thread - script: cargo test --all -- --test-threads=1 displayName: Cargo test