Skip to content

Commit 5ca9f1e

Browse files
Pin all CI jobs to Rust 1.94.0 via rust-toolchain.toml
Remove MSRV matrix (1.64.0, 1.71.1) and stable/beta variants — this fork requires 1.94.0 (LazyLock, modern SIMD APIs). All jobs now rely on rust-toolchain.toml which declares channel + components (clippy, rustfmt). Jobs that genuinely need nightly (miri, cargo-careful, docs) keep dtolnay/rust-toolchain@nightly. Everything else uses the repo-pinned toolchain directly. Co-authored-by: AdaWorldAPI <AdaWorldAPI@users.noreply.github.com>
1 parent 3856a33 commit 5ca9f1e

1 file changed

Lines changed: 19 additions & 81 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 19 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -15,104 +15,51 @@ env:
1515
HOST: x86_64-unknown-linux-gnu
1616
FEATURES: "approx,serde,rayon"
1717
RUSTFLAGS: "-D warnings -C target-cpu=x86-64-v3"
18-
MSRV: 1.64.0
19-
BLAS_MSRV: 1.71.1
2018

2119
jobs:
22-
pass-msrv:
23-
runs-on: ubuntu-latest
24-
name: Pass MSRV values to other jobs
25-
outputs:
26-
MSRV: ${{ env.MSRV }}
27-
BLAS_MSRV: ${{ env.BLAS_MSRV }}
28-
steps:
29-
- name: Pass MSRV
30-
run: |
31-
echo "MSRV=${{ env.MSRV }}" >> $GITHUB_OUTPUT
32-
echo "BLAS_MSRV=${{ env.BLAS_MSRV }}" >> $GITHUB_OUTPUT
33-
3420
clippy:
3521
runs-on: ubuntu-latest
36-
strategy:
37-
matrix:
38-
rust:
39-
- stable
40-
name: clippy/${{ matrix.rust }}
22+
name: clippy/1.94.0
4123
steps:
4224
- uses: actions/checkout@v4
43-
- uses: dtolnay/rust-toolchain@master
44-
with:
45-
toolchain: ${{ matrix.rust }}
46-
components: clippy
47-
# rust-toolchain.toml pins 1.94.0 — install clippy for that toolchain too,
48-
# since dtolnay/rust-toolchain only installs for the requested matrix value.
49-
- run: rustup component add clippy --toolchain 1.94.0 || true
5025
- uses: Swatinem/rust-cache@v2
5126
- run: cargo clippy --features approx,serde,rayon -- -D warnings
5227
- run: cargo clippy --features native -- -D warnings
5328

5429
format:
5530
runs-on: ubuntu-latest
56-
name: format/stable
31+
name: format/1.94.0
5732
steps:
5833
- uses: actions/checkout@v4
59-
- uses: dtolnay/rust-toolchain@stable
60-
with:
61-
components: rustfmt
62-
# rust-toolchain.toml pins 1.94.0 — install rustfmt for that toolchain too.
63-
- run: rustup component add rustfmt --toolchain 1.94.0 || true
6434
- run: cargo fmt --all --check
6535

6636
nostd:
6737
runs-on: ubuntu-latest
68-
continue-on-error: ${{ matrix.experimental }}
69-
strategy:
70-
matrix:
71-
include:
72-
- rust: stable
73-
experimental: false
74-
target: thumbv6m-none-eabi
75-
76-
name: nostd/${{ matrix.target }}/${{ matrix.rust }}
38+
name: nostd/thumbv6m-none-eabi/1.94.0
7739
steps:
7840
- uses: actions/checkout@v4
79-
- uses: dtolnay/rust-toolchain@stable
80-
with:
81-
toolchain: ${{ matrix.rust }}
82-
targets: ${{ matrix.target }}
83-
- name: Tests
41+
- run: rustup target add thumbv6m-none-eabi
42+
- name: Build no_std
8443
run: |
85-
cargo rustc "--target=${{ matrix.target }}" --no-default-features --features portable-atomic-critical-section
44+
cargo rustc "--target=thumbv6m-none-eabi" --no-default-features --features portable-atomic-critical-section
8645
8746
tests:
8847
runs-on: ubuntu-latest
89-
needs: pass-msrv
90-
strategy:
91-
matrix:
92-
rust:
93-
- stable
94-
- beta
95-
- ${{ needs.pass-msrv.outputs.MSRV }}
96-
97-
name: tests/${{ matrix.rust }}
48+
name: tests/1.94.0
9849
steps:
9950
- uses: actions/checkout@v4
100-
- uses: dtolnay/rust-toolchain@master
101-
with:
102-
toolchain: ${{ matrix.rust }}
10351
- uses: rui314/setup-mold@v1
10452
- uses: Swatinem/rust-cache@v2
10553
- uses: taiki-e/install-action@nextest
10654
- name: Install openblas
10755
run: sudo apt-get install libopenblas-dev gfortran
108-
- run: ./scripts/all-tests.sh "$FEATURES" ${{ matrix.rust }}
109-
56+
- run: ./scripts/all-tests.sh "$FEATURES" 1.94.0
57+
11058
native-backend:
11159
runs-on: ubuntu-latest
112-
name: native-backend/stable
60+
name: native-backend/1.94.0
11361
steps:
11462
- uses: actions/checkout@v4
115-
- uses: dtolnay/rust-toolchain@stable
11663
- uses: Swatinem/rust-cache@v2
11764
- uses: taiki-e/install-action@nextest
11865
- name: Build native backend
@@ -122,21 +69,17 @@ jobs:
12269
- name: Test native + approx
12370
run: cargo nextest run -p ndarray --features native,approx
12471

125-
blas-msrv:
72+
blas-integ:
12673
runs-on: ubuntu-latest
127-
name: blas-msrv
128-
needs: pass-msrv
74+
name: blas-integ/1.94.0
12975
steps:
13076
- uses: actions/checkout@v4
131-
- uses: dtolnay/rust-toolchain@master
132-
with:
133-
toolchain: ${{ needs.pass-msrv.outputs.BLAS_MSRV }}
13477
- uses: rui314/setup-mold@v1
13578
- uses: Swatinem/rust-cache@v2
13679
- uses: taiki-e/install-action@nextest
13780
- name: Install openblas
13881
run: sudo apt-get install libopenblas-dev gfortran
139-
- run: ./scripts/blas-integ-tests.sh $BLAS_MSRV
82+
- run: ./scripts/blas-integ-tests.sh 1.94.0
14083

14184
miri:
14285
# Nightly-only. Cannot run SIMD intrinsics or FFI.
@@ -154,28 +97,22 @@ jobs:
15497
- run: ./scripts/miri-tests.sh
15598

15699
cross_test:
157-
#if: ${{ github.event_name == 'merge_group' }}
158100
runs-on: ubuntu-latest
159101
strategy:
160102
matrix:
161103
include:
162-
- rust: stable
163-
target: s390x-unknown-linux-gnu
164-
- rust: stable
165-
target: i686-unknown-linux-gnu
104+
- target: s390x-unknown-linux-gnu
105+
- target: i686-unknown-linux-gnu
166106

167-
name: cross_test/${{ matrix.target }}/${{ matrix.rust }}
107+
name: cross_test/${{ matrix.target }}/1.94.0
168108
steps:
169109
- uses: actions/checkout@v4
170-
- uses: dtolnay/rust-toolchain@master
171-
with:
172-
toolchain: ${{ matrix.rust }}
173-
targets: ${{ matrix.target }}
110+
- run: rustup target add ${{ matrix.target }}
174111
- uses: rui314/setup-mold@v1
175112
- uses: Swatinem/rust-cache@v2
176113
- name: Install cross
177114
run: cargo install cross
178-
- run: ./scripts/cross-tests.sh "approx,serde,rayon" ${{ matrix.rust }} ${{ matrix.target }}
115+
- run: ./scripts/cross-tests.sh "approx,serde,rayon" 1.94.0 ${{ matrix.target }}
179116

180117
cargo-careful:
181118
# Nightly-only. Only runs on merge queue / push — never blocks PR checks.
@@ -210,6 +147,7 @@ jobs:
210147
- nostd
211148
- tests
212149
- native-backend
150+
- blas-integ
213151
- miri
214152
- cross_test
215153
- cargo-careful

0 commit comments

Comments
 (0)