@@ -2,46 +2,114 @@ name: CI
2
2
on : [push, pull_request]
3
3
4
4
env :
5
+ CARGO_TERM_VERBOSE : true
5
6
RUSTDOCFLAGS : -Dwarnings
6
7
RUSTFLAGS : -Dwarnings
8
+ RUST_BACKTRACE : full
7
9
8
10
jobs :
9
11
docker :
10
12
name : Docker
11
- runs-on : ubuntu-latest
13
+ timeout-minutes : 10
12
14
strategy :
15
+ fail-fast : false
13
16
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
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 }}
29
66
steps :
30
- - uses : actions/checkout@master
31
- - name : Install Rust
32
- run : rustup update nightly && 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 }}
67
+ - name : Print runner information
68
+ run : uname -a
69
+ - uses : actions/checkout@v4
70
+ - name : Install Rust (rustup)
71
+ shell : bash
72
+ run : |
73
+ channel="nightly"
74
+ # Account for channels that have required components (MinGW)
75
+ [ -n "${{ matrix.channel }}" ] && channel="${{ matrix.channel }}"
76
+ rustup update "$channel" --no-self-update
77
+ rustup default "$channel"
78
+ rustup target add ${{ matrix.target }}
79
+ rustup component add llvm-tools-preview
80
+ - uses : Swatinem/rust-cache@v2
81
+ with :
82
+ key : ${{ matrix.target }}
83
+
84
+ - name : Download musl source
85
+ run : ./ci/download-musl.sh
86
+ shell : bash
87
+
88
+ # Non-linux tests just use our raw script
89
+ - name : Run locally
90
+ run : ./ci/run.sh ${{ matrix.target }}
91
+ if : matrix.os != 'ubuntu-latest'
92
+ shell : bash
93
+ env :
94
+ BUILD_ONLY : ${{ matrix.build_only }}
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 }}
37
102
38
103
rustfmt :
39
104
name : Rustfmt
40
105
runs-on : ubuntu-latest
41
106
steps :
42
107
- uses : actions/checkout@master
43
108
- name : Install Rust
44
- run : rustup update stable && rustup default stable && rustup component add rustfmt
109
+ run : |
110
+ rustup update stable --no-self-update
111
+ rustup default stable
112
+ rustup component add rustfmt
45
113
- run : cargo fmt -- --check
46
114
47
115
wasm :
@@ -50,17 +118,19 @@ jobs:
50
118
steps :
51
119
- uses : actions/checkout@master
52
120
- name : Install Rust
53
- run : rustup update nightly && rustup default nightly
121
+ run : rustup update nightly --no-self-update && rustup default nightly
54
122
- run : rustup target add wasm32-unknown-unknown
123
+ - name : Download MUSL source
124
+ run : ./ci/download-musl.sh
55
125
- run : cargo build --target wasm32-unknown-unknown
56
126
57
- cb :
127
+ builtins :
58
128
name : " The compiler-builtins crate works"
59
129
runs-on : ubuntu-latest
60
130
steps :
61
131
- uses : actions/checkout@master
62
132
- name : Install Rust
63
- run : rustup update nightly && rustup default nightly
133
+ run : rustup update nightly --no-self-update && rustup default nightly
64
134
- run : cargo build -p cb
65
135
66
136
benchmarks :
@@ -69,15 +139,17 @@ jobs:
69
139
steps :
70
140
- uses : actions/checkout@master
71
141
- name : Install Rust
72
- run : rustup update nightly && rustup default nightly
142
+ run : rustup update nightly --no-self-update && rustup default nightly
143
+ - name : Download MUSL source
144
+ run : ./ci/download-musl.sh
73
145
- run : cargo bench --all
74
146
75
147
success :
76
148
needs :
77
149
- docker
78
150
- rustfmt
79
151
- wasm
80
- - cb
152
+ - builtins
81
153
- benchmarks
82
154
runs-on : ubuntu-latest
83
155
# GitHub branch protection is exceedingly silly and treats "jobs skipped because a dependency
0 commit comments