biscuit 0.8.0

A library to work with Javascript Object Signing and Encryption(JOSE), including JSON Web Tokens (JWT), JSON Web Signature (JWS) and JSON Web Encryption (JWE).
Documentation
on:
  push:
    branches:
      - master
  pull_request: {}

name: Continuous integration
permissions:
  contents: read

jobs:
  ci:
    env:
      MSRV: "1.66.0"
    strategy:
      matrix:
        rust:
          - stable
          - beta
          - nightly
          - msrv
        os:
          - ubuntu-latest
          - windows-latest
          - macOS-latest

    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v3
        name: Checkout

      - uses: dtolnay/rust-toolchain@master
        name: Verify Rust Toolchain
        with:
          toolchain: ${{ matrix.rust == 'msrv' && env.MSRV || matrix.rust }}
          components: rustfmt, clippy

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

      - run: cargo fmt --all -- --check
        name: Format Check
        if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest'

      - run: cargo clippy --all-targets --all-features -- -D warnings
        name: Clippy Lint (Stable)
        if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable'

      - run: cargo clippy --all-targets --all-features -- -D warnings -A "clippy::upper_case_acronyms"
        name: Clippy Lint (Non-stable)
        if: matrix.os == 'ubuntu-latest' && (matrix.rust == 'beta' || matrix.rust == 'nightly')

      - run: cargo build --verbose --all-features
        name: Build

      - run: cargo test --all-features
        name: Unit Tests

      - run: cargo doc --no-deps --all-features
        name: Build Documentation