weavatrix-graph 0.1.1

Deterministic, evidence-carrying graph primitives for repository intelligence
Documentation
name: CI

on:
  push:
  pull_request:

permissions:
  contents: read

jobs:
  quality:
    name: Quality
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install stable Rust
        run: rustup toolchain install stable --profile minimal --component clippy,rustfmt
      - name: Check formatting
        run: cargo +stable fmt --all -- --check
      - name: Run Clippy
        run: cargo +stable clippy --all-targets --all-features -- -D warnings
      - name: Run tests
        run: cargo +stable test --all-features --locked
      - name: Build documentation
        env:
          RUSTDOCFLAGS: -D warnings
        run: cargo +stable doc --no-deps --all-features --locked

  msrv:
    name: MSRV (${{ matrix.os }})
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v7
      - name: Install Rust 1.88
        run: rustup toolchain install 1.88.0 --profile minimal
      - name: Check all targets
        run: cargo +1.88.0 check --all-targets --locked

  coverage:
    name: Coverage
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install stable Rust
        run: rustup toolchain install stable --profile minimal
      - name: Install cargo-tarpaulin
        run: cargo install cargo-tarpaulin --locked
      - name: Check test coverage
        run: cargo tarpaulin --workspace --all-features --timeout 120 --fail-under 85