name: Publish Crate (Manual)
on:
workflow_dispatch:
jobs:
publish-crate:
name: Publish to crates.io
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- name: Publish to crates.io
run: |
output=$(cargo publish --allow-dirty 2>&1) && echo "$output" || {
echo "$output"
echo "$output" | grep -q "already exists" && echo "crate already published, skipping" || exit 1
}
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}