Table accessor + capabilities trait #385
Workflow file for this run
This file contains hidden or 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
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| merge_group: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_INCREMENTAL: "0" | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: "1" | |
| jobs: | |
| # 1. Style Check (Only needs to run once on latest stable) | |
| fmt: | |
| name: Format | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 # v4 | |
| # It is highly recommended to pin this action to a commit SHA as well! | |
| - name: Install stable Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| components: rustfmt | |
| - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 # v2 | |
| - run: cargo fmt --all --check | |
| # 2. Main Verification Matrix (Runs on BOTH MSRV and Stable) | |
| verify: | |
| name: Verify (${{ matrix.toolchain }} on ${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] | |
| toolchain: ["1.95.0", "stable"] | |
| include: | |
| - os: windows-latest | |
| toolchain: "stable" | |
| - os: macos-latest | |
| toolchain: "stable" | |
| steps: | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 # v4 | |
| - name: Install Rust (${{ matrix.toolchain }}) | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| components: clippy | |
| - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 # v2 | |
| with: | |
| key: ${{ matrix.os }}-${{ matrix.toolchain }} | |
| - name: Lint default features | |
| run: cargo clippy --lib --tests --locked -- -D warnings | |
| - name: Lint no-default features | |
| run: cargo clippy --lib --tests --no-default-features --locked -- -D warnings | |
| - name: Lint all features | |
| run: cargo clippy --lib --tests --all-features --locked -- -D warnings | |
| - name: Run unit and integration tests | |
| run: cargo test --lib --tests --all-features --locked | |
| # 3. Target-Specific Verification (WASM browser check on both MSRV and Stable) | |
| browser-wasm: | |
| name: Browser WASM (${{ matrix.toolchain }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| toolchain: ["1.95.0", "stable"] | |
| steps: | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 # v4 | |
| - name: Install Rust (${{ matrix.toolchain }}) with WASM target | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| components: clippy | |
| targets: wasm32-unknown-unknown | |
| - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 # v2 | |
| with: | |
| key: wasm-${{ matrix.toolchain }} | |
| - name: Run clippy for browser feature on Wasm | |
| run: cargo clippy --target wasm32-unknown-unknown --lib --no-default-features --features browser --locked -- -D warnings | |
| # 4. Documentation & Packaging Safety (Only needs to run once on stable) | |
| release-sanity: | |
| name: Docs & Package Sanity | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| env: | |
| RUSTDOCFLAGS: -D warnings | |
| steps: | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Install stable Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 | |
| - name: Run doc tests | |
| run: cargo test --doc --locked | |
| - name: Build docs with all features | |
| run: cargo doc --no-deps --all-features --locked | |
| - name: Verify crates.io package | |
| run: cargo package --locked |