name: Publish to crates.io
on:
release:
types:
- published
permissions:
contents: read
jobs:
publish:
runs-on: ubuntu-latest
environment: main
steps:
- uses: actions/checkout@v6
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
- name: Sync Cargo.toml version to tag
run: |
tag_version="${GITHUB_REF_NAME#v}"
sed -i "s/^version[ =].*/version = \"${tag_version}\"/" Cargo.toml
- name: Refresh Cargo.lock
run: cargo update -p readable-hash
- name: Publish crate
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish --locked --allow-dirty