name: publish-crate
on:
push:
branches:
- main
paths-ignore:
- '**.md'
- 'LICENSE'
- '.*'
- '.*/**'
permissions:
id-token: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Set auto-incrementing patch version
run: |
BASE_VERSION=$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2 | cut -d. -f1,2)
NEW_VERSION="$BASE_VERSION.$GITHUB_RUN_NUMBER"
sed -i "0,/^version = \".*\"/s//version = \"$NEW_VERSION\"/" Cargo.toml
echo "Publishing version: $NEW_VERSION"
- uses: rust-lang/crates-io-auth-action@v1
id: auth
- name: Publish to crates.io
run: cargo publish --allow-dirty
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}