steps: - bash: | set -ex toolchain=$TOOLCHAIN if [ "$toolchain" = "" ]; then toolchain=nightly fi if command -v rustup; then rustup update $toolchain rustup default $toolchain else curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain echo "##vso[task.prependpath]$HOME/.cargo/bin" fi displayName: Install rust (unix) condition: ne( variables['Agent.OS'], 'Windows_NT' ) - script: | @echo on if not defined TOOLCHAIN set TOOLCHAIN=nightly rustup update --no-self-update %TOOLCHAIN%-%TARGET% rustup default %TOOLCHAIN%-%TARGET% displayName: Install rust (windows) condition: eq( variables['Agent.OS'], 'Windows_NT' ) - script: | set -ex if [ -n "${TARGET}" ]; then rustup target add $TARGET fi condition: ne( variables['Agent.OS'], 'Windows_NT' ) displayName: Install target (unix) - script: | @echo on if defined TARGET rustup target add %TARGET% condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Install target (windows) - script: | @echo on if "%ARCH%" == "i686" choco install mingw --x86 --force condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Install MinGW32 (windows) - bash: | set -ex gcc -print-search-dirs find "C:\ProgramData\Chocolatey" -name "crt2*" find "C:\ProgramData\Chocolatey" -name "dllcrt2*" find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Find GCC libraries (windows) - bash: | set -ex if [[ -n ${ARCH_BITS} ]]; then for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw${ARCH_BITS}/${ARCH}-w64-mingw32/lib/$i" "`rustc --print sysroot`/lib/rustlib/${TARGET}/lib" done fi condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Fix MinGW (windows) - bash: | set -ex rustc -Vv cargo -V rustup -Vv rustup show which rustc which cargo which rustup displayName: Query rust and cargo versions - script: | @echo on where gcc condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Query gcc path - bash: | set -ex cargo generate-lockfile displayName: Generate lockfiles