Skip to content

chore: release v0.9.0 #758

chore: release v0.9.0

chore: release v0.9.0 #758

Workflow file for this run

name: CI
on:
push:
branches: [main]
paths-ignore:
- 'website/**'
- 'docs/**'
- '**.md'
- '.gitignore'
- 'LICENSE*'
pull_request:
types: [opened, synchronize, reopened]
paths-ignore:
- 'website/**'
- 'docs/**'
- '**.md'
- '.gitignore'
- 'LICENSE*'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: swatinem/rust-cache@v2
- name: Run tests
run: cargo test --workspace --all-features
provider-features:
# Every other job builds with --all-features, which is why a dependency
# gated behind one provider feature but used by all of them compiled
# cleanly here and broke for anyone selecting a single provider.
# See https://github.com/marcjazz/authkestra/issues/321.
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
feature: [github, google, discord]
steps:
- uses: actions/checkout@v7
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: swatinem/rust-cache@v2
- name: Build with one provider and nothing else
# --all-targets on purpose: without it this only compiles the lib, and
# the tests and examples — where a feature-gating slip is just as easy
# to make — are never built. Requires the provider tests to declare
# `required-features`, which they do.
run: |
cargo check --all-targets -p authkestra-providers --no-default-features \
--features ${{ matrix.feature }},rustls-aws-lc-rs
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: swatinem/rust-cache@v2
- name: Run clippy
run: cargo clippy --workspace --all-features -- -D warnings
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: swatinem/rust-cache@v2
- name: Check formatting
run: cargo fmt --all -- --check
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Run coverage and fail if under threshold
run: cargo llvm-cov --workspace --all-features --lcov --output-path lcov.info --fail-under-lines 84
- name: Upload coverage to Codecov
if: always()
uses: codecov/codecov-action@v5
with:
files: lcov.info
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
- name: Report coverage to DeepSource
if: ${{ always() && env.DEEPSOURCE_DSN != '' }}
env:
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
run: |
curl -fsSL https://cli.deepsource.com/install | BINDIR=./bin sh
./bin/deepsource report --analyzer test-coverage --key rust --value-file lcov.info
deny:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Check cargo-deny
uses: EmbarkStudios/cargo-deny-action@v2