Skip to content
Snippets Groups Projects
azure-cross-compile.yml 1.79 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
    
    Douman's avatar
    Douman committed
            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')