@@ -25,13 +25,61 @@ jobs:
2525 - name : Run Typos
2626 run : typos
2727
28+ msrv :
29+ name : MSRV
30+ needs : fmt
31+ runs-on : ubuntu-latest
32+ strategy :
33+ fail-fast : false
34+ matrix :
35+ include :
36+ # Android (breaks MSRV with `indexmap`, which Rust 1.71.1 doesn't allow easily pinning)
37+ # - target: aarch64-linux-android
38+
39+ # CoreGraphics
40+ - target : aarch64-apple-darwin
41+ - target : x86_64-apple-ios
42+
43+ # Orbital (doesn't follow MSRV)
44+ # - target: x86_64-unknown-redox
45+
46+ # Wayland, KMS/DRM, X11
47+ - target : i686-unknown-linux-gnu
48+ - target : x86_64-unknown-linux-gnu
49+ - target : x86_64-unknown-linux-gnu
50+ features : " x11,x11-dlopen"
51+ - target : x86_64-unknown-linux-gnu
52+ features : " wayland,wayland-dlopen"
53+ - target : x86_64-unknown-linux-gnu
54+ features : " kms"
55+ - target : x86_64-unknown-freebsd
56+ - target : x86_64-unknown-netbsd
57+ features : " x11,x11-dlopen,wayland,wayland-dlopen"
58+
59+ # Web
60+ - target : wasm32-unknown-unknown
61+
62+ # Win32
63+ - target : x86_64-pc-windows-msvc
64+ - target : x86_64-pc-windows-gnu
65+
66+ steps :
67+ - uses : actions/checkout@v6
68+ - uses : hecrj/setup-rust-action@v2
69+ with :
70+ rust-version : ' 1.71.1'
71+ targets : ${{ matrix.target }}
72+
73+ - name : Check that crate compiles
74+ run : cargo check --verbose --target ${{ matrix.target }} ${{ matrix.features && '--no-default-features --features' }} ${{ matrix.features }}
75+
2876 tests :
2977 name : Tests
3078 needs : fmt
3179 strategy :
3280 fail-fast : false
3381 matrix :
34- rust_version : ['1.71.0', stable, nightly]
82+ rust_version : [stable, nightly]
3583 platform :
3684 - { target: x86_64-pc-windows-msvc, os: windows-latest, }
3785 - { target: i686-pc-windows-msvc, os: windows-latest, }
4997 - { target: x86_64-unknown-netbsd, os: ubuntu-latest, options: --no-default-features, features: "x11,x11-dlopen,wayland,wayland-dlopen" }
5098 - { target: aarch64-apple-darwin, os: macos-latest, }
5199 - { target: wasm32-unknown-unknown, os: ubuntu-latest, }
52- exclude :
53- # Orbital doesn't follow MSRV
54- - rust_version : ' 1.71.0'
55- platform : { target: x86_64-unknown-redox, os: ubuntu-latest }
56100 include :
57101 - rust_version : nightly
58102 platform : { target: wasm32-unknown-unknown, os: ubuntu-latest, options: "-Zbuild-std=panic_abort,std", rustflags: "-Ctarget-feature=+atomics,+bulk-memory" }
@@ -95,17 +139,6 @@ jobs:
95139 if : (matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')
96140 run : sudo apt-get install gcc-multilib
97141
98- - name : Pin deps that break MSRV
99- if : matrix.rust_version == '1.71.0'
100- run : |
101- cargo update -p dpi --precise 0.1.1
102- cargo update -p image --precise 0.25.6
103- cargo update -p zune-jpeg --precise 0.4.14
104- cargo update -p half --precise 2.4.1
105- cargo update -p bumpalo --precise 3.14.0
106- cargo update -p rayon --precise 1.10.0
107- cargo update -p rayon-core --precise 1.12.1
108-
109142 - name : Build crate
110143 shell : bash
111144 run : cargo $CMD build --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
0 commit comments