name: Release
# Publishes to crates.io on a version tag (e.g. v0.1.0). Bump `version` in
# Cargo.toml, tag the commit, and push.
#
# Uses crates.io Trusted Publishing (OIDC) — no API token stored in the repo.
# Configure the crate's trusted publisher on crates.io to allow this repository
# and workflow.
on:
push:
tags:
jobs:
publish:
runs-on: ubuntu-latest
environment: crates-io
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Authenticate to crates.io
uses: rust-lang/crates-io-auth-action@v1
id: auth
- name: Publish
run: cargo publish --locked --token ${{ steps.auth.outputs.token }}