@@ -25,13 +25,67 @@ 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
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 : Pin deps that break MSRV
74+ run : |
75+ cargo update -p toml_edit --precise 0.23.5
76+ cargo update -p indexmap@2 --precise 2.11.4
77+ cargo update -p toml_datetime --precise 0.7.1
78+
79+ - name : Check that crate compiles
80+ run : cargo check --verbose --target ${{ matrix.target }} ${{ matrix.features && '--no-default-features --features' }} ${{ matrix.features }}
81+
2882 tests :
2983 name : Tests
3084 needs : fmt
3185 strategy :
3286 fail-fast : false
3387 matrix :
34- rust_version : ['1.71.0', stable, nightly]
88+ rust_version : [stable, nightly]
3589 platform :
3690 - { target: x86_64-pc-windows-msvc, os: windows-latest, }
3791 - { target: i686-pc-windows-msvc, os: windows-latest, }
@@ -49,10 +103,6 @@ jobs:
49103 - { target: x86_64-unknown-netbsd, os: ubuntu-latest, options: --no-default-features, features: "x11,x11-dlopen,wayland,wayland-dlopen" }
50104 - { target: aarch64-apple-darwin, os: macos-latest, }
51105 - { 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 }
56106 include :
57107 - rust_version : nightly
58108 platform : { target: wasm32-unknown-unknown, os: ubuntu-latest, options: "-Zbuild-std=panic_abort,std", rustflags: "-Ctarget-feature=+atomics,+bulk-memory" }
@@ -95,17 +145,6 @@ jobs:
95145 if : (matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')
96146 run : sudo apt-get install gcc-multilib
97147
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-
109148 - name : Build crate
110149 shell : bash
111150 run : cargo $CMD build --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
0 commit comments