Stylo integration #2298
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- 0.2.x | |
- 0.3.x | |
name: CI | |
env: | |
RUSTDOCFLAGS: "-D warnings" | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: "sparse" | |
jobs: | |
# MSRV check. | |
# Taffy only guarantees "latest stable". However we have this check here to ensure that we advertise | |
# our MSRV. We also make an effort not to increase MSRV in patch versions of Taffy. | |
# | |
# We only run `cargo build` (not `cargo test`) so as to avoid requiring dev-dependencies to build with the MSRV | |
# version. Building is likely sufficient as runtime errors varying between rust versions is very unlikely. | |
test-features-msrv: | |
name: "MSRV Build [Rust 1.65]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.65 | |
- run: cargo build | |
test-features-debug: | |
name: "Build [debug feature]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --features debug | |
# No features | |
test-features-none: | |
name: "Test Suite [no features]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features | |
- run: cargo test --no-default-features --features taffy_tree | |
# Default | |
test-features-default: | |
name: "Test Suite [default features]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build | |
- run: cargo test | |
test-features-default-with-serde: | |
name: "Test Suite [default + serde]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --features serde | |
- run: cargo test --features serde | |
test-features-default-except-content-size: | |
name: "Test Suite [default except content_size]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features std,taffy_tree,grid,flexbox,block_layout | |
- run: cargo test --no-default-features --features std,taffy_tree,grid,flexbox,block_layout | |
test-features-no-grid-nor-flexbox: | |
name: "Test Suite [std (no algorithms)]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features std | |
- run: cargo build --no-default-features --features std,taffy_tree | |
- run: cargo test --no-default-features --features std,taffy_tree | |
# With std feature | |
test-features-flexbox: | |
name: "Test Suite [std + flexbox]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features flexbox,std | |
- run: cargo build --no-default-features --features flexbox,std,taffy_tree | |
- run: cargo test --no-default-features --features flexbox,std,taffy_tree | |
test-features-grid: | |
name: "Test Suite [std + grid]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features grid,std | |
- run: cargo build --no-default-features --features grid,std,taffy_tree | |
- run: cargo test --no-default-features --features grid,std,taffy_tree | |
test-features-block: | |
name: "Test Suite [std + block)]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features block_layout,std | |
- run: cargo build --no-default-features --features block_layout,std,taffy_tree | |
- run: cargo test --no-default-features --features block_layout,std,taffy_tree | |
# With alloc feature | |
test-features-grid-with-alloc: | |
name: "Test Suite [alloc + no algorithms]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features alloc | |
- run: cargo build --no-default-features --features alloc,taffy_tree | |
- run: cargo test --no-default-features --features alloc,taffy_tree | |
test-features-alloc: | |
name: "Test Suite [alloc + all algorithms]" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --no-default-features --features alloc,grid,flexbox,block_layout | |
- run: cargo build --no-default-features --features alloc,grid,flexbox,block_layout,taffy_tree | |
- run: cargo test --no-default-features --features alloc,grid,flexbox,block_layout,taffy_tree | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: clippy | |
- run: cargo +nightly clippy --workspace -- -D warnings | |
# Run rustdoc with the `docsrs` cfg to ensure that the documentation is compatible with docs.rs. | |
# This enables the doc_auto_cfg feature, which requires the nightly toolchain. | |
# Also checks that the examples can be scraped. | |
doc: | |
name: Documentation | |
runs-on: ubuntu-latest | |
env: | |
RUSTDOCFLAGS: "--cfg docsrs" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: clippy | |
- run: cargo +nightly doc -Zunstable-options -Zrustdoc-scrape-examples --all-features --no-deps | |
markdownlint: | |
name: Markdown Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run Markdown Lint | |
uses: DavidAnson/markdownlint-cli2-action@v16 | |
with: | |
globs: "**/*.md" | |
fixture-format: | |
name: Test Fixture Formatting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run format script | |
run: cargo format-fixtures | |
- name: Ensure no changes | |
run: | | |
if [ -z "$(git status --porcelain)" ]; then | |
echo "Fixtures formatted correctly" | |
else | |
git status && echo -e "\nTest fixtures are not formatted correctly. Please run 'cargo format-fixtures'" | |
exit 1 | |
fi | |
benchmarks: | |
name: Build Benchmarks | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo xbench --no-run | |
name: Build benchmarks | |
env: | |
RUSTFLAGS: "-C opt-level=0" | |
benchmarks-with-yoga: | |
name: Build Benchmarks (w/ yoga) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo xbench --no-run --features yoga | |
name: Build benchmarks (w/yoga) | |
env: | |
RUSTFLAGS: "-C opt-level=0" |