@@ -2,38 +2,103 @@ name: CI
22on : [push, pull_request]
33
44env :
5+ CARGO_TERM_VERBOSE : true
56 RUSTDOCFLAGS : -Dwarnings
67 RUSTFLAGS : -Dwarnings
8+ RUST_BACKTRACE : full
79
810jobs :
9- docker :
11+ test :
1012 name : Docker
11- runs-on : ubuntu-latest
13+ timeout-minutes : 20
1214 strategy :
15+ fail-fast : false
1316 matrix :
14- target :
15- - aarch64-unknown-linux-gnu
16- - arm-unknown-linux-gnueabi
17- - arm-unknown-linux-gnueabihf
18- - armv7-unknown-linux-gnueabihf
19- # - i686-unknown-linux-gnu
20- # MIPS targets disabled since they are dropped to tier 3.
21- # See https://github.com/rust-lang/compiler-team/issues/648
22- # - mips-unknown-linux-gnu
23- # - mips64-unknown-linux-gnuabi64
24- # - mips64el-unknown-linux-gnuabi64
25- - powerpc-unknown-linux-gnu
26- - powerpc64-unknown-linux-gnu
27- - powerpc64le-unknown-linux-gnu
28- - x86_64-unknown-linux-gnu
17+ include :
18+ - target : aarch64-apple-darwin
19+ os : macos-latest
20+ - target : aarch64-unknown-linux-gnu
21+ os : ubuntu-latest
22+ - target : aarch64-pc-windows-msvc
23+ os : windows-latest
24+ build_only : 1 # Can't run on x86 hosts
25+ - target : arm-unknown-linux-gnueabi
26+ os : ubuntu-latest
27+ - target : arm-unknown-linux-gnueabihf
28+ os : ubuntu-latest
29+ - target : armv7-unknown-linux-gnueabihf
30+ os : ubuntu-latest
31+ - target : i586-unknown-linux-gnu
32+ os : ubuntu-latest
33+ - target : i686-unknown-linux-gnu
34+ os : ubuntu-latest
35+ - target : powerpc-unknown-linux-gnu
36+ os : ubuntu-latest
37+ - target : powerpc64-unknown-linux-gnu
38+ os : ubuntu-latest
39+ - target : powerpc64le-unknown-linux-gnu
40+ os : ubuntu-latest
41+ - target : riscv64gc-unknown-linux-gnu
42+ os : ubuntu-latest
43+ - target : thumbv6m-none-eabi
44+ os : ubuntu-latest
45+ - target : thumbv7em-none-eabi
46+ os : ubuntu-latest
47+ - target : thumbv7em-none-eabihf
48+ os : ubuntu-latest
49+ - target : thumbv7m-none-eabi
50+ os : ubuntu-latest
51+ - target : x86_64-unknown-linux-gnu
52+ os : ubuntu-latest
53+ - target : x86_64-apple-darwin
54+ os : macos-13
55+ - target : i686-pc-windows-msvc
56+ os : windows-latest
57+ - target : x86_64-pc-windows-msvc
58+ os : windows-latest
59+ - target : i686-pc-windows-gnu
60+ os : windows-latest
61+ channel : nightly-i686-gnu
62+ - target : x86_64-pc-windows-gnu
63+ os : windows-latest
64+ channel : nightly-x86_64-gnu
65+ runs-on : ${{ matrix.os }}
66+ env :
67+ BUILD_ONLY : ${{ matrix.build_only }}
2968 steps :
30- - uses : actions/checkout@master
31- - name : Install Rust
32- run : rustup update nightly --no-self-update && rustup default nightly
33- - run : rustup target add ${{ matrix.target }}
34- - run : rustup target add x86_64-unknown-linux-musl
35- - run : cargo generate-lockfile
36- - run : ./ci/run-docker.sh ${{ matrix.target }}
69+ - name : Print runner information
70+ run : uname -a
71+ - uses : actions/checkout@v4
72+ - name : Install Rust (rustup)
73+ shell : bash
74+ run : |
75+ channel="nightly"
76+ # Account for channels that have required components (MinGW)
77+ [ -n "${{ matrix.channel }}" ] && channel="${{ matrix.channel }}"
78+ rustup update "$channel" --no-self-update
79+ rustup default "$channel"
80+ rustup target add ${{ matrix.target }}
81+ rustup component add llvm-tools-preview
82+ - uses : Swatinem/rust-cache@v2
83+ with :
84+ key : ${{ matrix.target }}
85+
86+ - name : Download musl source
87+ run : ./ci/download-musl.sh
88+ shell : bash
89+
90+ # Non-linux tests just use our raw script
91+ - name : Run locally
92+ if : matrix.os != 'ubuntu-latest'
93+ shell : bash
94+ run : ./ci/run.sh ${{ matrix.target }}
95+
96+ # Otherwise we use our docker containers to run builds
97+ - name : Run in Docker
98+ if : matrix.os == 'ubuntu-latest'
99+ run : |
100+ rustup target add x86_64-unknown-linux-musl
101+ cargo generate-lockfile && ./ci/run-docker.sh ${{ matrix.target }}
37102
38103 wasm :
39104 name : WebAssembly
45110 - run : rustup target add wasm32-unknown-unknown
46111 - run : cargo build --target wasm32-unknown-unknown
47112
48- cb :
113+ builtins :
49114 name : " The compiler-builtins crate works"
50115 runs-on : ubuntu-latest
51116 steps :
61126 - uses : actions/checkout@master
62127 - name : Install Rust
63128 run : rustup update nightly --no-self-update && rustup default nightly
129+ - name : Download musl source
130+ run : ./ci/download-musl.sh
64131 - run : cargo bench --all
65132
66133 msrv :
92159
93160 success :
94161 needs :
95- - docker
162+ - test
96163 - wasm
97- - cb
164+ - builtins
98165 - benchmarks
99166 - msrv
100167 - rustfmt
0 commit comments