jobs: - job: ${{ parameters.name }} pool: vmImage: ${{ parameters.vmImage }} strategy: matrix: stable: rustup_toolchain: stable beta: rustup_toolchain: beta nightly: rustup_toolchain: nightly # TODO: re-enable once new versions are released. # minimum_supported_version_plus_one: # rustup_toolchain: 1.32.0 #minimum_supported_version: # rustup_toolchain: 1.33.0 steps: - ${{ if ne(parameters.name, 'Windows') }}: # Linux and macOS. - script: | export CARGO_HOME="$HOME/.cargo" 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 - ${{ if eq(parameters.name, 'Windows') }}: # Windows. - script: | set CARGO_HOME=%USERPROFILE%\.cargo 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 -V displayName: Query rust and cargo versions - ${{ if eq(parameters.name, 'Linux') }}: # Linux. - script: _build/cargo-make.sh "0.20.0" "x86_64-unknown-linux-musl" displayName: Install cargo-make binary - ${{ if eq(parameters.name, 'macOS') }}: # Mac. - script: _build/cargo-make.sh "0.20.0" "x86_64-apple-darwin" displayName: Install cargo-make binary - ${{ if eq(parameters.name, 'Windows') }}: # Windows. - script: powershell -executionpolicy bypass -file _build/cargo-make.ps1 -version "0.20.0" -target "x86_64-pc-windows-msvc" displayName: Install cargo-make binary - ${{ if eq(parameters.name, 'Windows') }}: # Windows. - script: | set PATH=%PATH%;%USERPROFILE%\.cargo\bin cargo make workspace-ci-flow --no-workspace env: { CARGO_MAKE_RUN_CODECOV: true } displayName: Build and run tests - ${{ if ne(parameters.name, 'Windows') }}: # Not Windows. - script: | export PATH="$PATH:$HOME/.cargo/bin"; cargo make workspace-ci-flow --no-workspace env: { CARGO_MAKE_RUN_CODECOV: true } displayName: Build and run tests - script: | rustup target add wasm32-unknown-unknown cargo check --target wasm32-unknown-unknown --package juniper --package juniper_codegen displayName: Check WebAssembly target condition: eq(variables['rustup_toolchain'], 'stable')