@@ -27,56 +27,20 @@ to S3 so that we can then make a release of rustup.
2727
2828## Targets we need to build
2929
30- We build for all the Tier one targets and a non-trivial number of the tier two
31- targets of Rust. We do not even attempt tier three builds.
32-
33- We don't run the tests on all the targets because many are cross-built. If we
34- cross-build we don't run the tests. All the builds which aren't mac or windows
35- are built on an x86_64 system because that's the easiest way to get a performant
36- system.
37-
38- | Target | Cross | Tier | On PR? | On master? |
39- | ----------------------------- | ---------- | ----- | ------ | ---------- |
40- | x86_64-unknown-linux-gnu | No | One | Yes | Yes |
41- | armv7-unknown-linux-gnueabihf | Yes | Two | Yes | Yes |
42- | aarch64-linux-android | Yes | Two | Yes | Yes |
43- | aarch64-unknown-linux-gnu | Yes | Two | No | Yes |
44- | aarch64-unknown-linux-musl | Yes | Two | No | Yes |
45- | powerpc64-unknown-linux-gnu | Yes | Two | No | Yes |
46- | x86_64-unknown-linux-musl | Yes | Two | No | Yes |
47- | i686-unknown-linux-gnu | Yes | One | No | No |
48- | arm-unknown-linux-gnueabi | Yes | Two | No | No |
49- | arm-unknown-linux-gnueabihf | Yes | Two | No | No |
50- | x86_64-unknown-freebsd | Yes | Two | No | No |
51- | x86_64-unknown-netbsd | Yes | Two | No | No |
52- | x86_64-unknown-illumos | Yes | Two | No | No |
53- | powerpc-unknown-linux-gnu | Yes | Two | No | No |
54- | powerpc64le-unknown-linux-gnu | Yes | Two | No | No |
55- | mips-unknown-linux-gnu | Yes | Two | No | No |
56- | mips64-unknown-linux-gnu | Yes | Two | No | No |
57- | mipsel-unknown-linux-gnu | Yes | Two | No | No |
58- | mips64el-unknown-linux-gnu | Yes | Two | No | No |
59- | s390x-unknown-linux-gnu | Yes | Two | No | No |
60- | arm-linux-androideabi | Yes | Two | No | No |
61- | armv7-linux-androideabi | Yes | Two | No | No |
62- | i686-linux-android | Yes | Two | No | No |
63- | x86_64-linux-android | Yes | Two | No | No |
64- | riscv64gc-unknown-linux-gnu | Yes | --- | No | No |
65- | loongarch64-unknown-linux-gnu | Yes | Two | No | No |
66- | ----------------------------- | ---------- | ----- | ------ | ---------- |
67- | aarch64-apple-darwin | Yes | Two | Yes | Yes |
68- | x86_64-apple-darwin | No | One | Yes | Yes |
69- | ----------------------------- | ---------- | ----- | ------ | ---------- |
70- | x86_64-pc-windows-msvc | No | One | Yes | Yes |
71- | x86_64-pc-windows-gnu | No | One | No | Yes |
72- | i686-pc-windows-msvc | No | One | No | No |
73- | i686-pc-windows-gnu | No | One | No | No |
74- | aarch64-pc-windows-msvc | Yes | Two | No | Yes |
75-
76- We also have a clippy/shellcheck target which runs on x86_64 linux and is
77- run in all cases. It does a ` cargo fmt ` check, a ` cargo clippy ` check on the
78- beta toolchain, and also runs ` rustup-init.sh ` through to completion inside
79- a centos 6 docker to ensure that we continue to work on there OK.
30+ We follow ` rustc ` 's [ platform support policy] closely, and so ` rustup ` is expected
31+ to build for all targets listed in the _ tier 1_ or the _ tier 2 with host tools_ section.
32+
33+ [ platform support policy ] : https://doc.rust-lang.org/nightly/rustc/platform-support.html
34+
35+ In order to reduce the maintainance burden, targets listed in the _ tier 2 without host
36+ tools_ section might get limited support, but should by no means become a blocker.
37+ We should not build for targets listed in the _ tier 3_ section, and if a target gets
38+ downgraded to tier 3, its CI workflows should be dropped accordingly.
39+
40+ If a platform is directly supported by GitHub Action's free runners, we should always
41+ build for it natively with the full test suite activated.
42+ Otherwise, we might consider performing a cross-build, in which case we won't run the
43+ tests for the the target.
8044
8145## Useful notes about how we run builds
8246
0 commit comments