parameters: cmd: test rust_version: stable jobs: - job: ${{ parameters.name }} displayName: Cross strategy: matrix: i686: vmImage: ubuntu-16.04 target: i686-unknown-linux-gnu armv7: vmImage: ubuntu-16.04 target: armv7-unknown-linux-gnueabihf powerpc: vmImage: ubuntu-16.04 target: powerpc-unknown-linux-gnu powerpc64: vmImage: ubuntu-16.04 target: powerpc64-unknown-linux-gnu wasm: vmImage: ubuntu-16.04 target: wasm32-unknown-unknown pool: vmImage: $(vmImage) steps: - template: azure-install-rust.yml parameters: rust_version: ${{parameters.rust_version}} # FIXME(taiki-e): When https://github.com/rust-embedded/cross/pull/169 is # merged, switch to the installation from crates.io. # See https://nbsoftsolutions.com/blog/azure-pipelines-for-rust-projects#workaround-cross-compilation # for the current script. - script: | git clone https://github.com/rust-embedded/cross.git cd cross git reset --hard fb1cb1d7288151f4349f1cb4c990e0e2281764da #Is broken after this commit (images are not uploaded to new docker hub) git apply ../ci/cross-patch cargo install --path . rm -rf cross displayName: Install cross condition: not(eq(variables['target'], 'wasm32-unknown-unknown')) - script: cross ${{ parameters.cmd }} --target $(target) displayName: cross ${{ parameters.cmd }} --target $(target) condition: not(eq(variables['target'], 'wasm32-unknown-unknown')) # WASM support - script: | rustup target add $(target) cargo build --target $(target) displayName: cargo build --target $(target) condition: eq(variables['target'], 'wasm32-unknown-unknown')