7
7
name : Check MSRV (1.71.0)
8
8
strategy :
9
9
matrix :
10
- include :
10
+ target :
11
11
- os : ubuntu-latest
12
- features : vulkan,hashbrown
13
- - os : ubuntu-latest
14
- features : vulkan,std
15
- - os : ubuntu-latest
16
- features : vulkan,std,hashbrown
17
- - os : windows-latest
18
- features : d3d12,hashbrown
12
+ backend : vulkan
19
13
- os : windows-latest
20
- features : d3d12,std
21
- - os : windows-latest
22
- features : d3d12,std,hashbrown
23
- - os : macos-latest
24
- features : metal,hashbrown
25
- - os : macos-latest
26
- features : metal,std
14
+ backend : vulkan,d3d12
27
15
- os : macos-latest
28
- features : metal,std,hashbrown
29
- runs-on : ${{ matrix.os }}
16
+ backend : vulkan,metal
17
+ features :
18
+ - hashbrown
19
+ - std
20
+ - hashbrown,std
21
+ runs-on : ${{ matrix.target.os }}
30
22
steps :
31
23
- uses : actions/checkout@v4
32
24
- uses : dtolnay/rust-toolchain@nightly
33
25
- name : Generate lockfile with minimal dependency versions
34
26
run : cargo +nightly generate-lockfile -Zminimal-versions
35
27
36
28
# Note that examples are extempt from the MSRV check, so that they can use newer Rust features
37
- - run : cargo check --workspace --features ${{ matrix.features }} --no-default-features
29
+ - run : cargo check --workspace --features ${{ matrix.target.backend }},${{ matrix. features }} --no-default-features
38
30
39
31
test :
40
32
name : Test Suite
41
33
strategy :
42
34
matrix :
43
- include :
35
+ target :
44
36
- os : ubuntu-latest
45
- features : vulkan,visualizer,hashbrown
46
- - os : ubuntu-latest
47
- features : vulkan,visualizer,std
48
- - os : ubuntu-latest
49
- features : vulkan,visualizer,std,hashbrown
50
- - os : windows-latest
51
- features : d3d12,visualizer,public-winapi,hashbrown
37
+ backend : vulkan
52
38
- os : windows-latest
53
- features : d3d12,visualizer,public-winapi,std
54
- - os : windows-latest
55
- features : d3d12,visualizer,public-winapi,std,hashbrown
56
- - os : macos-latest
57
- features : metal,visualizer,hashbrown
58
- - os : macos-latest
59
- features : metal,visualizer,std
39
+ backend : vulkan,d3d12
60
40
- os : macos-latest
61
- features : metal,visualizer,std,hashbrown
62
- runs-on : ${{ matrix.os }}
41
+ backend : vulkan,metal
42
+ features :
43
+ - hashbrown
44
+ - std
45
+ - hashbrown,std
46
+ runs-on : ${{ matrix.target.os }}
63
47
steps :
64
48
- uses : actions/checkout@v4
65
49
- name : Cargo test all targets
66
- run : cargo test --workspace --all-targets --features ${{ matrix.features }} --no-default-features
50
+ run : cargo test --workspace --all-targets --features visualizer,${{ matrix.target.backend }}, ${{ matrix.features }} --no-default-features
67
51
- name : Cargo test docs
68
- run : cargo test --workspace --doc --features ${{ matrix.features }} --no-default-features
52
+ run : cargo test --workspace --doc --features visualizer,${{ matrix.target.backend }}, ${{ matrix.features }} --no-default-features
69
53
70
54
fmt :
71
55
name : Rustfmt
@@ -79,26 +63,30 @@ jobs:
79
63
name : Clippy
80
64
strategy :
81
65
matrix :
82
- include :
66
+ target :
83
67
- os : ubuntu-latest
84
- features : std, vulkan,visualizer
68
+ backend : vulkan
85
69
- os : windows-latest
86
- features : std, vulkan,visualizer, d3d12,public-winapi
70
+ backend : vulkan,d3d12
87
71
- os : macos-latest
88
- features : std,vulkan,visualizer,metal
89
- runs-on : ${{ matrix.os }}
72
+ backend : vulkan,metal
73
+ features :
74
+ - hashbrown
75
+ - std
76
+ - hashbrown,std
77
+ runs-on : ${{ matrix.target.os }}
90
78
steps :
91
79
- uses : actions/checkout@v4
92
80
- name : Cargo clippy
93
- run : cargo clippy --workspace --all-targets --features ${{ matrix.features }} --no-default-features -- -D warnings
81
+ run : cargo clippy --workspace --all-targets --features visualizer,${{ matrix.target.backend }}, ${{ matrix.features }} --no-default-features -- -D warnings
94
82
95
83
doc :
96
84
name : Build documentation
97
85
strategy :
98
86
matrix :
99
87
# Rely on Windows and Mac to also compile the Vulkan portion (via --all-features)
100
88
os : [windows-latest, macos-latest]
101
- runs-on : ${{ matrix.os }}
89
+ runs-on : ${{ matrix.target. os }}
102
90
env :
103
91
RUSTDOCFLAGS : -Dwarnings
104
92
steps :
0 commit comments