weavatrix-git 0.2.0

Dependency-free, evidence-carrying Git repository reader
Documentation
name: CI

on:
  push:
  pull_request:

permissions:
  contents: read

jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "1.88"
          components: rustfmt, clippy
      - run: cargo fmt --all --check
      - run: cargo clippy --all-targets -- -D warnings
      - run: cargo test --all-targets
      - run: cargo doc --no-deps
      - run: cargo package --allow-dirty
      - shell: pwsh
        run: ./scripts/check-lines.ps1

  coverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "1.88"
          components: llvm-tools-preview
      - uses: taiki-e/install-action@cargo-llvm-cov
      - run: >-
          cargo llvm-cov --workspace --fail-under-lines 85
          --ignore-filename-regex 'src[/\\]bin[/\\]'

  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: taiki-e/install-action@cargo-audit
      - run: cargo audit

  competitor-harness:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "1.88"
      - run: >-
          cargo run --release --example create_fixture --
          target/competitor-ci 100
      - run: >-
          cargo run --release --locked
          --manifest-path tools/competitor-bench/Cargo.toml --
          "${{ github.workspace }}/target/competitor-ci" 50 5
      - run: >-
          cargo run --release --locked
          --manifest-path tools/competitor-bench/Cargo.toml --
          --cross-repo 50 5
          "${{ github.workspace }}/target/competitor-ci"
          "${{ github.workspace }}/target/competitor-ci"