name: Release
on:
push:
tags:
- 'v*'
jobs:
publish:
name: Publish to crates.io
runs-on: ubuntu-latest
environment: production
permissions:
id-token: write # Required for trusted publishing
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
- name: Run tests
run: cargo test --all-features
- name: Publish to crates.io
uses: katyo/publish-crates@v2
with:
args: --allow-dirty