openrouter-rs 0.11.1

A type-safe OpenRouter Rust SDK
Documentation
name: CI

on:
  pull_request:
  push:
    branches:
      - main

concurrency:
  group: ci-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  lint-and-unit:
    name: Lint and Unit Tests
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Setup Rust (stable)
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      - name: Install just
        uses: taiki-e/install-action@just

      - name: Cache Rust artifacts
        uses: Swatinem/rust-cache@v2

      - name: Check formatting
        run: just fmt-check

      - name: Cargo check (default features)
        run: just check

      - name: Run clippy (deny warnings)
        run: just clippy

      - name: Run unit tests
        run: just test-unit

      - name: Run crate-internal lib tests
        run: just test-lib

      - name: Run doctests
        run: just test-doc

      - name: Run deterministic integration subsets
        run: just test-integration-subsets

      - name: Run CLI foundation tests
        run: just test-cli

  msrv-check:
    name: MSRV Check (1.85.0)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Setup Rust (1.85.0)
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: 1.85.0

      - name: Install just
        uses: taiki-e/install-action@just

      - name: Cache Rust artifacts
        uses: Swatinem/rust-cache@v2

      - name: Cargo check (all targets/default features)
        run: just check

      - name: Cargo check (all targets/features)
        run: just check-all-features

  migration-smoke:
    name: Migration Smoke Checks
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Setup Rust (stable)
        uses: dtolnay/rust-toolchain@stable

      - name: Install just
        uses: taiki-e/install-action@just

      - name: Cache Rust artifacts
        uses: Swatinem/rust-cache@v2

      - name: Validate migration docs structure
        run: just check-migration-docs

      - name: Run migration smoke tests
        run: just test-migration-smoke