Skip to content

Table accessor + capabilities trait #385

Table accessor + capabilities trait

Table accessor + capabilities trait #385

Workflow file for this run

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