name: Publish to Crates.io
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
env:
GIT_TAG: ${{ github.ref_name }}
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: ${{ env.GIT_TAG }}
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Authenticate with Crates.io
uses: rust-lang/crates-io-auth-action@v1
id: auth
- name: Publish to Crates.io
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}