openapiv3-resolve 0.2.0

Reference resolution helpers for the openapiv3 crate.
Documentation
name: CI

on:
  pull_request:
  push:
    branches: [ master ]

env:
  CARGO_TERM_COLOR: always

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6

    - name: Install Rust toolchain
      run: |
        rustup update stable
        rustup default stable
        rustup component add clippy rustfmt
        rustup toolchain install nightly

    - name: Cache cargo registry
      uses: actions/cache@v5
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
          ${{ runner.os }}-cargo-

    - name: Install cargo-binstall
      uses: cargo-bins/cargo-binstall@v1.18.1

    - name: Install cargo-udeps
      run: cargo binstall --no-confirm cargo-udeps

    - name: Check formatting
      run: cargo fmt --all -- --check

    - name: Run clippy
      run: cargo clippy --all-targets -- -D warnings

    - name: Build
      run: cargo build --verbose

    - name: Build docs
      run: cargo doc --no-deps
      env:
        RUSTDOCFLAGS: -D warnings

    - name: Publish dry run
      run: cargo publish --dry-run

    - name: Run cargo udeps
      run: cargo +nightly udeps --all-targets

  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6

    - name: Install Rust toolchain
      run: |
        rustup update stable
        rustup default stable

    - name: Cache cargo registry
      uses: actions/cache@v5
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
          ${{ runner.os }}-cargo-

    # Plain `cargo test` on purpose: `--all-targets` silently skips doctests,
    # and the README example is a doctest.
    - name: Run tests
      run: cargo test --verbose

  msrv:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6

    - name: Install Rust toolchain
      run: |
        rustup toolchain install 1.85 --profile minimal
        rustup default 1.85

    - name: Cache cargo registry
      uses: actions/cache@v5
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-cargo-msrv-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
          ${{ runner.os }}-cargo-msrv-

    # Must match `rust-version` in Cargo.toml.
    - name: Check MSRV
      run: cargo check --all-targets --verbose