Test Rust natively on Arm with Travis CI

Hi!

The Arm64 Linux target (aarch64-unknown-linux-gnu) is currently at a Tier 2 platform support.
I believe that some of the reasons for this are:

  • Most CI only offer x86 architecture
  • It would take a lot of time ressource (which is limited for open-source projects by CI providers) to execute those tests in a simulated environment like QEMU.

There is already a Dockerfile at src/ci/docker/disabled/aarch64-gnu/Dockerfile available to execute the tests for Aarch64 on QEMU but it is disabled. In commit 8ef3f69, Alex Crichton said:

Once we get enough capacity to run this on Travis this can be used to boost our platform coverage of AArch64

Well, good news! Travis CI announced multi-CPU support for builds and one of them is Arm64!
I know that Rust moved from Travis CI to Azure Pipelines but my question is simple:

Could Travis CI be used to execute Rust automated tests natively on Arm64 in order for the aarch64-unknown-linux-gnu target to be Tier 1?

(well if they pass :grinning:)

I believe Rust has since switched to Azure for CI for various reasons. Does this provider also provide an ARM execution environment?

I had a quick look at Azure Pipelines docs and it seemed to me that Microsoft-hosted agent do not let you the choice of choosing architecture (maybe I am wrong) whereas you can have a self-hosted Arm agent.

Would it be possible, theoretically, for Rust to use both Azure and Travis (only for the Arm64 targets)?

Discussion happens here: https://github.com/rust-lang/infra-team/issues/34