| 1 | name: Publish to crates.io |
| 2 | on: |
| 3 | push: |
| 4 | tags: # Triggers when pushing tags starting with 'v' |
| 5 | jobs: |
| 6 | publish: |
| 7 | runs-on: ubuntu-latest |
| 8 | environment: release # Optional: for enhanced security |
| 9 | permissions: |
| 10 | id-token: write # Required for OIDC token exchange |
| 11 | steps: |
| 12 | - uses: actions/checkout@v6 |
| 13 | - uses: rust-lang/crates-io-auth-action@v1 |
| 14 | id: auth |
| 15 | - run: cargo publish |
| 16 | env: |
| 17 | CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} |