@@ -11,68 +11,91 @@ jobs:
1111 name : Check
1212 runs-on : ${{ matrix.os }}
1313 strategy :
14+ fail-fast : false
1415 matrix :
15- os : [ubuntu-latest, windows-latest, macOS-latest]
16- rust : [stable]
16+ os : [ubuntu-latest, ubuntu-24.04, windows-latest, macOS-latest, ubuntu-24.04-arm]
1717 steps :
18- - uses : actions/checkout@v4
19- - uses : actions-rs/toolchain@v1
20- with :
21- profile : minimal
22- toolchain : ${{ matrix.rust }}
23- override : true
24- - uses : actions-rs/cargo@v1
18+ - uses : actions/checkout@v6
19+ - uses : actions/setup-python@v6
2520 with :
26- command : check
27- args : --workspace
21+ python-version : " 3.13"
22+ - name : Remove cargo config (macOS ring crate fix)
23+ if : runner.os == 'macOS'
24+ run : rm -f .cargo/config.toml
25+ - uses : dtolnay/rust-toolchain@stable
26+
27+ - name : Run macos with metal
28+ if : matrix.os == 'macOS-latest'
29+ run : cargo check --workspace --features metal
30+
31+ - name : Run normal cpu
32+ if : matrix.os == 'ubuntu-latest' || matrix.os == 'windows-latest'
33+ run : cargo check --workspace
34+
35+ - name : Run with avx2
36+ if : matrix.os == 'ubuntu-24.04'
37+ run : |
38+ export RUSTFLAGS="-C target-feature=avx2"
39+ cargo check --workspace
40+
41+ - name : Run with arm neon
42+ if : matrix.os == 'ubuntu-24.04-arm'
43+ run : |
44+ export RUSTFLAGS="-C target-feature=neon"
45+ cargo check --workspace
2846
2947 test :
3048 name : Test Suite
3149 runs-on : ${{ matrix.os }}
3250 strategy :
3351 matrix :
3452 os : [ubuntu-latest, windows-latest, macOS-latest]
35- rust : [stable]
3653 steps :
37- - uses : actions/checkout@v4
38- - uses : actions-rs/toolchain@v1
39- with :
40- profile : minimal
41- toolchain : ${{ matrix.rust }}
42- override : true
43- - uses : actions-rs/cargo@v1
54+ - name : Free disk space (Linux)
55+ if : runner.os == 'Linux'
56+ run : |
57+ sudo rm -rf /opt/hostedtoolcache
58+ sudo rm -rf /usr/share/dotnet
59+ sudo rm -rf /usr/local/lib/android
60+ sudo rm -rf /opt/ghc
61+ df -h
62+ - uses : actions/checkout@v6
63+ - uses : actions/setup-python@v6
4464 with :
45- command : test
46- args : --workspace
65+ python-version : " 3.13"
66+ - name : Remove cargo config (macOS ring crate fix)
67+ if : runner.os == 'macOS'
68+ run : rm -f .cargo/config.toml
69+ - uses : dtolnay/rust-toolchain@stable
70+ - name : Install lld (Linux only)
71+ if : runner.os == 'Linux'
72+ run : sudo apt-get update && sudo apt-get install -y lld
73+ - name : Run tests (with lld on Linux)
74+ if : runner.os == 'Linux'
75+ env :
76+ RUSTFLAGS : " -C link-arg=-fuse-ld=lld"
77+ run : cargo test --workspace
78+ - name : Run tests (Windows & macOS)
79+ if : runner.os != 'Linux'
80+ run : cargo test --workspace
4781
4882 fmt :
4983 name : Rustfmt
5084 runs-on : ubuntu-latest
5185 steps :
52- - uses : actions/checkout@v4
53- - uses : actions-rs/ toolchain@v1
86+ - uses : actions/checkout@v6
87+ - uses : dtolnay/rust- toolchain@stable
5488 with :
55- profile : minimal
56- toolchain : stable
57- override : true
58- - run : rustup component add rustfmt
59- - uses : actions-rs/cargo@v1
60- with :
61- command : fmt
62- args : --all -- --check
89+ components : rustfmt
90+ - run : cargo fmt --all -- --check
6391
6492 clippy :
6593 name : Clippy
6694 runs-on : ubuntu-latest
6795 steps :
68- - uses : actions/checkout@v4
69- - uses : actions-rs/toolchain@v1
70- with :
71- profile : minimal
72- toolchain : stable
73- override : true
74- - run : rustup component add clippy
75- - uses : actions-rs/cargo@v1
96+ - uses : actions/checkout@v6
97+ - uses : dtolnay/rust-toolchain@stable
7698 with :
77- command : clippy
78- args : --workspace --tests --examples -- -D warnings
99+ components : clippy
100+ - run : cargo clippy --workspace --tests --examples --benches -- -D warnings
101+
0 commit comments