name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
audit:
name: Audit
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Set up Rust
uses: ./.github/actions/rust/
- name: Install cargo-audit
run: cargo install cargo-audit --locked
- name: Run cargo audit
run: cargo audit
build:
name: Build (${{ matrix.name }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: native
target: x86_64-unknown-linux-gnu
features: http,jwt-simple,jwt-simple/pure-rust,moka
- name: wasm
target: wasm32-unknown-unknown
features: cloudflare,http,jwt-simple,jwt-simple/pure-rust,web-crypto
env:
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Set up Rust
uses: ./.github/actions/rust/
- name: Install wasm target
if: matrix.name == 'wasm'
run: rustup target add wasm32-unknown-unknown
- name: Build
run: cargo build --features "${{ matrix.features }}"
test:
name: Test (${{ matrix.name }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: native
target: x86_64-unknown-linux-gnu
features: http,jwt-simple,jwt-simple/pure-rust,moka
- name: wasm
target: wasm32-unknown-unknown
features: cloudflare,http,jwt-simple,jwt-simple/pure-rust,web-crypto
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Set up Rust
uses: ./.github/actions/rust/
- name: Install wasm target
if: matrix.name == 'wasm'
run: rustup target add wasm32-unknown-unknown
- name: Install wasm-bindgen test runner
if: matrix.name == 'wasm'
run: cargo install -f wasm-bindgen-cli --version 0.2.122
- name: Test
run: cargo test --features "${{ matrix.features }}"
env:
CARGO_BUILD_TARGET: ${{ matrix.target }}
lint:
name: Lint (${{ matrix.name }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: native
target: x86_64-unknown-linux-gnu
features: http,jwt-simple,jwt-simple/pure-rust,moka
- name: wasm
target: wasm32-unknown-unknown
features: cloudflare,http,jwt-simple,jwt-simple/pure-rust,web-crypto
env:
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Set up Rust
uses: ./.github/actions/rust/
- name: Install wasm target
if: matrix.name == 'wasm'
run: rustup target add wasm32-unknown-unknown
- name: fmt
if: matrix.name == 'native'
run: cargo fmt -- --check
- name: Clippy
run: cargo clippy --features "${{ matrix.features }}" -- -D warnings
- name: Doc
if: matrix.name == 'native'
env:
RUSTDOCFLAGS: "-D warnings"
run: cargo doc --no-deps --features "${{ matrix.features }}"
examples:
name: Examples (${{ matrix.name }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: native
target: x86_64-unknown-linux-gnu
features: http,jwt-simple,jwt-simple/pure-rust
- name: wasm
target: wasm32-unknown-unknown
features: http,jwt-simple,jwt-simple/pure-rust,web-crypto
env:
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Set up Rust
uses: ./.github/actions/rust/
- name: Install wasm target
if: matrix.name == 'wasm'
run: rustup target add wasm32-unknown-unknown
- name: Check examples
run: cargo check --examples --features "${{ matrix.features }}"
- name: Run examples
if: matrix.name == 'native'
run: |
cargo run --example basic_usage --features "${{ matrix.features }}"
cargo run --example jwt_verify --features "${{ matrix.features }}"
cargo run --example http_fetch --features "${{ matrix.features }}"