@@ -3,93 +3,116 @@ on: [push, pull_request]
33name : Continuous integration
44
55jobs :
6- Nightly :
7- name : Nightly - ASan + Bench + Docs
6+ Stable :
7+ name : Test - stable toolchain
88 runs-on : ubuntu-latest
9+ strategy :
10+ fail-fast : false
911 steps :
1012 - name : Checkout Crate
11- uses : actions/checkout@v2
12- - name : Install clang for ASan
13- run : sudo apt-get install -y clang
13+ uses : actions/checkout@v3
1414 - name : Checkout Toolchain
15- uses : actions-rs/toolchain@v1
16- with :
17- profile : minimal
18- toolchain : nightly
19- override : true
20- components : rust-src
21- - name : Check formatting
15+ # https://github.com/dtolnay/rust-toolchain
16+ uses : dtolnay/rust-toolchain@stable
17+ - name : Running test script
2218 env :
23- DO_FMT : true
19+ DO_LINT : true
20+ DO_DOCS : true
21+ DO_FEATURE_MATRIX : true
2422 run : ./contrib/test.sh
25- - name : Running address sanitizer
26- env :
27- DO_ASAN : true
23+
24+ Beta :
25+ name : Test - beta toolchain
26+ runs-on : ubuntu-latest
27+ strategy :
28+ fail-fast : false
29+ steps :
30+ - name : Checkout Crate
31+ uses : actions/checkout@v3
32+ - name : Checkout Toolchain
33+ uses : dtolnay/rust-toolchain@beta
34+ - name : Running test script
2835 run : ./contrib/test.sh
29- - name : Running benchmarks
36+
37+ Nightly :
38+ name : Test - nightly toolchain
39+ runs-on : ubuntu-latest
40+ strategy :
41+ fail-fast : false
42+ steps :
43+ - name : Checkout Crate
44+ uses : actions/checkout@v3
45+ - name : Checkout Toolchain
46+ uses : dtolnay/rust-toolchain@nightly
47+ - name : Install src
48+ run : rustup component add rust-src
49+ - name : Running test script
3050 env :
51+ DO_FMT : true
3152 DO_BENCH : true
32- run : ./contrib/test.sh
33- - name : Building docs
34- env :
35- DO_DOCS : true
53+ DO_DOCSRS : true
54+ DO_ASAN : true
3655 run : ./contrib/test.sh
3756
38- Tests :
39- name : Tests
57+ MSRV :
58+ name : Test - 1.48.0 toolchain
4059 runs-on : ubuntu-latest
4160 strategy :
42- matrix :
43- rust : [stable, beta, nightly, 1.48.0]
61+ fail-fast : false
4462 steps :
4563 - name : Checkout Crate
46- uses : actions/checkout@v2
64+ uses : actions/checkout@v3
4765 - name : Checkout Toolchain
48- uses : actions-rs/toolchain@v1
49- with :
50- profile : minimal
51- toolchain : ${{ matrix.rust }}
52- override : true
53- - name : Running cargo
66+ uses : dtolnay/rust-toolchain@1.48.0
67+ - name : Running test script
5468 env :
5569 DO_FEATURE_MATRIX : true
5670 run : ./contrib/test.sh
5771
72+ Arch32bit :
73+ name : Test 32-bit version
74+ runs-on : ubuntu-latest
75+ steps :
76+ - name : Checkout Crate
77+ uses : actions/checkout@v3
78+ - name : Checkout Toolchain
79+ uses : dtolnay/rust-toolchain@stable
80+ - name : Add architecture i386
81+ run : sudo dpkg --add-architecture i386
82+ - name : Install i686 gcc
83+ run : sudo apt-get update -y && sudo apt-get install -y gcc-multilib
84+ - name : Install target
85+ run : rustup target add i686-unknown-linux-gnu
86+ - name : Run test on i686
87+ run : cargo test --target i686-unknown-linux-gnu
88+
89+ Cross :
90+ name : Cross test
91+ if : ${{ !github.event.act }}
92+ runs-on : ubuntu-latest
93+ steps :
94+ - name : Checkout Crate
95+ uses : actions/checkout@v3
96+ - name : Checkout Toolchain
97+ uses : dtolnay/rust-toolchain@stable
98+ - name : Install target
99+ run : rustup target add s390x-unknown-linux-gnu
100+ - name : install cross
101+ run : cargo install cross --locked
102+ - name : run cross test
103+ run : cross test --target s390x-unknown-linux-gnu
104+
58105 WASM :
59106 name : WASM
60107 runs-on : ubuntu-latest
61- strategy :
62- matrix :
63- rust : [stable, beta, nightly] # wasm-pack doesn't support rust 1.41.1
64108 steps :
65109 - name : Checkout Crate
66- uses : actions/checkout@v2
110+ uses : actions/checkout@v3
67111 - name : Install clang
68112 run : sudo apt-get install -y clang
69113 - name : Checkout Toolchain
70- uses : actions-rs/toolchain@v1
71- with :
72- profile : minimal
73- toolchain : ${{ matrix.rust }}
74- override : true
75- components : rust-src
114+ uses : dtolnay/rust-toolchain@stable
76115 - name : Running WASM tests
77116 env :
78117 DO_WASM : true
79118 run : ./contrib/test.sh
80-
81- Clippy :
82- name : Clippy
83- runs-on : ubuntu-latest
84- steps :
85- - uses : actions/checkout@v2
86- - uses : actions-rs/toolchain@v1
87- with :
88- profile : minimal
89- toolchain : stable
90- override : true
91- - run : rustup component add clippy
92- - uses : actions-rs/cargo@v1
93- with :
94- command : clippy
95- args : --features=rand-std,recovery,lowmemory,global-context --all-targets -- -D warnings
0 commit comments