on: pull_request: push: branches: - main - 0.2.x - 0.3.x name: Continuous integration env: RUSTDOCFLAGS: "-D warnings" CARGO_REGISTRIES_CRATES_IO_PROTOCOL: "sparse" jobs: # None test-features-none: name: "Test Suite [Features: None]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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 [Features: Default]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable - run: cargo build - run: cargo test test-features-default-with-serde: name: "Test Suite [Features: Default + serde]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable - run: cargo build --features serde - run: cargo test --features serde test-features-no-grid-nor-flexbox: name: "Test Suite [Features: std (no grid or flexbox)]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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 # Flexbox test-features-flexbox: name: "Test Suite [Features: flexbox + std]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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 # Grid test-features-grid: name: "Test Suite [Features: grid + std]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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-grid-with-alloc: name: "Test Suite [Features: grid + alloc]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable - run: cargo build --no-default-features --features alloc,grid - run: cargo build --no-default-features --features alloc,grid,taffy_tree - run: cargo test --no-default-features --features alloc,grid,taffy_tree test-features-alloc: name: "Test Suite [Features: alloc]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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-default-no-grid: name: "Test Suite [Features: std (no grid)]" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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 fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly components: clippy - run: cargo +nightly clippy --workspace -- -D warnings doc: name: Documentation runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: stable components: clippy - run: cargo doc markdownlint: name: Markdown Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Markdown Lint uses: DavidAnson/markdownlint-cli2-action@v9 with: globs: '**/*.md' fixture-format: name: Test Fixture Formatting runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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@v3 - 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@v3 - uses: dtolnay/rust-toolchain@stable - run: cargo xbench --no-run --features yoga name: Build benchmarks (w/yoga) env: RUSTFLAGS: "-C opt-level=0"