name: Publish to crates.io
on:
release:
types: [published]
env:
CARGO_TERM_COLOR: always
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 with:
toolchain: stable
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 - name: Install cargo-edit
run: cargo install cargo-edit --locked
- name: Set version from tag
run: |
version="${GITHUB_REF_NAME#v}"
echo "Publishing version $version (from tag $GITHUB_REF_NAME)"
cargo set-version "$version"
- name: Validate package before publishing
run: cargo publish --dry-run --allow-dirty
- name: Publish
run: cargo publish --allow-dirty
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}