name: Release

on:
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    permissions:
      contents: write
      id-token: write
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Authenticate to crates.io
      uses: rust-lang/crates-io-auth-action@v1.0.5
      id: auth
    - name: Publish to crates.io
      run: cargo publish --workspace
      env:
        CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}