Bump DavidAnson/markdownlint-cli2-action from 23 to 24 (#975)
1on:
2 pull_request:
3 push:
4 branches:
5 - main
6 - 0.2.x
7 - 0.3.x
8
9name: CI
10
11env:
12 RUSTDOCFLAGS: "-D warnings"
13 CARGO_REGISTRIES_CRATES_IO_PROTOCOL: "sparse"
14
15jobs:
16 # MSRV check.
17 # Taffy only guarantees "latest stable". However we have this check here to ensure that we advertise
18 # our MSRV. We also make an effort not to increase MSRV in patch versions of Taffy.
19 #
20 # We only run `cargo build` (not `cargo test`) so as to avoid requiring dev-dependencies to build with the MSRV
21 # version. Building is likely sufficient as runtime errors varying between rust versions is very unlikely.
22 build-features-msrv:
23 name: "MSRV Build [Rust 1.71]"
24 runs-on: ubuntu-latest
25 steps:
26 - uses: actions/checkout@v7
27 - uses: dtolnay/rust-toolchain@master
28 with:
29 toolchain: 1.71
30 - run: cargo build
31
32 build-features-debug:
33 name: "Build [debug feature]"
34 runs-on: ubuntu-latest
35 steps:
36 - uses: actions/checkout@v7
37 - uses: dtolnay/rust-toolchain@stable
38 - run: cargo build --features debug
39
40 build-examples:
41 name: "Build Examples"
42 runs-on: ubuntu-latest
43 steps:
44 - uses: actions/checkout@v7
45 - uses: dtolnay/rust-toolchain@stable
46 - run: cargo build --examples
47
48 # cosmic_text example is excluded from the workspace as it breaks compilation of all crates
49 # in the workspace with our MSRV compiler
50 build-cosmic-text-example:
51 name: "Build cosmic-text example"
52 runs-on: ubuntu-latest
53 steps:
54 - uses: actions/checkout@v7
55 - uses: dtolnay/rust-toolchain@stable
56 - run: cd examples/cosmic_text && cargo build
57
58 # No features
59 test-features-none:
60 name: "Test Suite [no features]"
61 runs-on: ubuntu-latest
62 steps:
63 - uses: actions/checkout@v7
64 - uses: dtolnay/rust-toolchain@stable
65 - run: cargo build --no-default-features
66 - run: cargo test --tests --no-default-features --features taffy_tree
67
68 # Default
69 test-features-default:
70 name: "Test Suite [default features]"
71 runs-on: ubuntu-latest
72 steps:
73 - uses: actions/checkout@v7
74 - uses: dtolnay/rust-toolchain@stable
75 - run: cargo build
76 - run: cargo test --tests
77
78 test-features-all:
79 name: "Test Suite [all features]"
80 runs-on: ubuntu-latest
81 steps:
82 - uses: actions/checkout@v7
83 - uses: dtolnay/rust-toolchain@stable
84 - run: cargo build --all-features
85 - run: cargo test --tests --all-features
86
87 # The main reason for this target is to test compilation on 32bit targets
88 test-features-android-32bit:
89 name: "Test Suite [all features (i686-linux-android)]"
90 runs-on: ubuntu-latest
91 steps:
92 - uses: actions/checkout@v7
93 - uses: dtolnay/rust-toolchain@stable
94 with:
95 targets: i686-linux-android
96 - run: cargo build --all-features --target i686-linux-android
97 # TODO: enable tests (currently running into linking errors)
98 # - run: cargo test --tests --all-features --target i686-linux-android
99
100 test-features-default-with-serde:
101 name: "Test Suite [default + serde]"
102 runs-on: ubuntu-latest
103 steps:
104 - uses: actions/checkout@v7
105 - uses: dtolnay/rust-toolchain@stable
106 - run: cargo build --features serde
107 - run: cargo test --tests --features serde
108
109 test-features-default-with-parse-faster:
110 name: "Test Suite [default + parse_faster]"
111 runs-on: ubuntu-latest
112 steps:
113 - uses: actions/checkout@v7
114 - uses: dtolnay/rust-toolchain@stable
115 - run: cargo build --features parse_faster
116 - run: cargo test --tests --features parse_faster
117
118 test-features-default-except-content-size:
119 name: "Test Suite [default except content_size]"
120 runs-on: ubuntu-latest
121 steps:
122 - uses: actions/checkout@v7
123 - uses: dtolnay/rust-toolchain@stable
124 - run: cargo build --no-default-features --features std,taffy_tree,grid,flexbox,block_layout
125 - run: cargo test --tests --no-default-features --features std,taffy_tree,grid,flexbox,block_layout,calc
126
127 test-features-default-except-calc:
128 name: "Test Suite [default except calc]"
129 runs-on: ubuntu-latest
130 steps:
131 - uses: actions/checkout@v7
132 - uses: dtolnay/rust-toolchain@stable
133 - run: cargo build --no-default-features --features std,taffy_tree,grid,flexbox,block_layout
134 - run: cargo test --tests --no-default-features --features std,taffy_tree,grid,flexbox,block_layout
135
136 test-features-no-grid-nor-flexbox:
137 name: "Test Suite [std (no algorithms)]"
138 runs-on: ubuntu-latest
139 steps:
140 - uses: actions/checkout@v7
141 - uses: dtolnay/rust-toolchain@stable
142 - run: cargo build --no-default-features --features std
143 - run: cargo build --no-default-features --features std,taffy_tree
144 - run: cargo test --tests --no-default-features --features std,taffy_tree,calc
145
146 # With std feature
147 test-features-flexbox:
148 name: "Test Suite [std + flexbox]"
149 runs-on: ubuntu-latest
150 steps:
151 - uses: actions/checkout@v7
152 - uses: dtolnay/rust-toolchain@stable
153 - run: cargo build --no-default-features --features flexbox,std
154 - run: cargo build --no-default-features --features flexbox,std,taffy_tree
155 - run: cargo test --tests --no-default-features --features flexbox,std,taffy_tree
156
157 test-features-grid:
158 name: "Test Suite [std + grid]"
159 runs-on: ubuntu-latest
160 steps:
161 - uses: actions/checkout@v7
162 - uses: dtolnay/rust-toolchain@stable
163 - run: cargo build --no-default-features --features grid,std
164 - run: cargo build --no-default-features --features grid,std,taffy_tree
165 - run: cargo test --tests --no-default-features --features grid,std,taffy_tree
166
167 test-features-block:
168 name: "Test Suite [std + block)]"
169 runs-on: ubuntu-latest
170 steps:
171 - uses: actions/checkout@v7
172 - uses: dtolnay/rust-toolchain@stable
173 - run: cargo build --no-default-features --features block_layout,std
174 - run: cargo build --no-default-features --features block_layout,std,taffy_tree
175 - run: cargo test --tests --no-default-features --features block_layout,std,taffy_tree
176
177 # With detailed layout info
178 test-features-grid-detailed-info:
179 name: "Test Suite [std + grid + detailed_layout_info]"
180 runs-on: ubuntu-latest
181 steps:
182 - uses: actions/checkout@v7
183 - uses: dtolnay/rust-toolchain@stable
184 - run: cargo build --no-default-features --features grid,detailed_layout_info,std
185 - run: cargo build --no-default-features --features grid,detailed_layout_info,std,taffy_tree
186 - run: cargo test --tests --no-default-features --features grid,detailed_layout_info,std,taffy_tree
187
188 # With detailed layout info
189 test-features-flex-detailed-info:
190 name: "Test Suite [std + flexbox + detailed_layout_info]"
191 runs-on: ubuntu-latest
192 steps:
193 - uses: actions/checkout@v7
194 - uses: dtolnay/rust-toolchain@stable
195 - run: cargo build --no-default-features --features flexbox,detailed_layout_info,std
196 - run: cargo build --no-default-features --features flexbox,detailed_layout_info,std,taffy_tree
197 - run: cargo test --tests --no-default-features --features flexbox,detailed_layout_info,std,taffy_tree
198
199 # With alloc feature
200
201 test-features-grid-with-alloc:
202 name: "Test Suite [alloc + no algorithms]"
203 runs-on: ubuntu-latest
204 steps:
205 - uses: actions/checkout@v7
206 - uses: dtolnay/rust-toolchain@stable
207 - run: cargo build --no-default-features --features alloc
208 - run: cargo build --no-default-features --features alloc,taffy_tree
209 - run: cargo test --tests --no-default-features --features alloc,taffy_tree
210
211 test-features-alloc:
212 name: "Test Suite [alloc + all algorithms]"
213 runs-on: ubuntu-latest
214 steps:
215 - uses: actions/checkout@v7
216 - uses: dtolnay/rust-toolchain@stable
217 - run: cargo build --no-default-features --features alloc,grid,flexbox,block_layout
218 - run: cargo build --no-default-features --features alloc,grid,flexbox,block_layout,taffy_tree
219 - run: cargo test --tests --no-default-features --features alloc,grid,flexbox,block_layout,taffy_tree
220
221 fmt:
222 name: Rustfmt
223 runs-on: ubuntu-latest
224 steps:
225 - uses: actions/checkout@v7
226 - uses: dtolnay/rust-toolchain@master
227 with:
228 toolchain: stable
229 components: rustfmt
230 - run: cargo fmt --all -- --check
231
232 clippy:
233 name: Clippy
234 runs-on: ubuntu-latest
235 steps:
236 - uses: actions/checkout@v7
237 - uses: dtolnay/rust-toolchain@master
238 with:
239 toolchain: stable
240 components: clippy
241 - run: cargo clippy --workspace -- -D warnings
242
243 # Run rustdoc with the `docsrs` cfg to ensure that the documentation is compatible with docs.rs.
244 # This enables the doc_auto_cfg feature, which requires the nightly toolchain.
245 # Also checks that the examples can be scraped.
246 doc:
247 name: Documentation
248 runs-on: ubuntu-latest
249 env:
250 RUSTDOCFLAGS: "--cfg docsrs"
251 steps:
252 - uses: actions/checkout@v7
253 - uses: dtolnay/rust-toolchain@master
254 with:
255 toolchain: nightly
256 components: clippy
257 - run: cargo +nightly doc -Zunstable-options -Zrustdoc-scrape-examples --all-features --no-deps
258
259 markdownlint:
260 name: Markdown Lint
261 runs-on: ubuntu-latest
262 steps:
263 - uses: actions/checkout@v7
264 - name: Run Markdown Lint
265 uses: DavidAnson/markdownlint-cli2-action@v24
266 with:
267 globs: "**/*.md"
268
269 fixture-format:
270 name: Test Fixture Formatting
271 runs-on: ubuntu-latest
272 steps:
273 - uses: actions/checkout@v7
274 - name: Run format script
275 run: cargo run -p format-fixtures
276 - name: Ensure no changes
277 run: |
278 if [ -z "$(git status --porcelain)" ]; then
279 echo "Fixtures formatted correctly"
280 else
281 git status && echo -e "\nTest fixtures are not formatted correctly. Please run 'cargo format-fixtures'"
282 exit 1
283 fi
284
285 # benches is excluded from the workspace as it depends on cosmic-text which breaks compilation
286 # of all crates in the workspace with our MSRV compiler
287 benchmarks:
288 name: Build Benchmarks
289 runs-on: ubuntu-latest
290 steps:
291 - uses: actions/checkout@v7
292 - uses: dtolnay/rust-toolchain@stable
293 - name: Install fontconfig
294 run: sudo apt-get update && sudo apt-get install libfontconfig-dev
295 - run: cd benches && cargo bench --no-run
296 name: Build benchmarks
297 env:
298 RUSTFLAGS: "-C opt-level=0"
299
300 benchmarks-with-yoga:
301 name: Build Benchmarks (w/ yoga)
302 runs-on: ubuntu-latest
303 steps:
304 - uses: actions/checkout@v7
305 - uses: dtolnay/rust-toolchain@stable
306 - name: Install fontconfig
307 run: sudo apt-get update && sudo apt-get install libfontconfig-dev
308 - run: cd benches && cargo bench --no-run --features yoga
309 name: Build benchmarks (w/yoga)
310 env:
311 RUSTFLAGS: "-C opt-level=0"