jobs: - job: ${{ parameters.name }} pool: vmImage: ${{ parameters.vmImage }} strategy: matrix: stable: rustup_toolchain: stable beta: rustup_toolchain: beta nightly: rustup_toolchain: nightly steps: # Linux and macOS. - ${{ if ne(parameters.name, 'Windows') }}: - 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 # Windows. - ${{ if eq(parameters.name, 'Windows') }}: - script: | curl -sSf -o rustup-init.exe https://win.rustup.rs rustup-init.exe -y --default-toolchain %RUSTUP_TOOLCHAIN% set PATH=%PATH%;%USERPROFILE%\.cargo\bin echo "##vso[task.setvariable variable=PATH;]%PATH%;%USERPROFILE%\.cargo\bin" displayName: Install rust (windows) # All platforms. - script: | rustc -Vv cargo -Vv displayName: Query rust and cargo versions - script: cargo build displayName: Build - script: | cargo test --all --verbose cargo test --release --all --verbose displayName: Test # Linux and macOS w/nightly toolchain. # Ideally we'd only run the script for the nightly toolchain, but I can't # figure out how to determine that within the Azure Pipelines conditional. - ${{ if ne(parameters.name, 'Windows') }}: - script: | export RUST_BACKTRACE=1 if [ "$RUSTUP_TOOLCHAIN" = "nightly" ] then cargo bench --all --verbose; fi displayName: Bench # Windows w/nightly toolchain. # Ideally we'd only run the script for the nightly toolchain, but I can't # figure out how to determine that within the Azure Pipelines conditional. - ${{ if eq(parameters.name, 'Windows') }}: - script: | SET RUST_BACKTRACE=1 if "%RUSTUP_TOOLCHAIN%" == "nightly" ( cargo bench --all --verbose ) displayName: Bench