name: Publish to crates.io
on:
release:
types: [created]
permissions:
id-token: write
contents: read
jobs:
publish:
runs-on: ubuntu-latest
environment: crates.io
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Obtain crates.io token
id: crates-io-auth
uses: rust-lang/crates-io-auth-action@v1.0.4
- name: Publish to crates.io
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ steps.crates-io-auth.outputs.token }}