name: Publish to crates.io on: push: tags: - 'v*' jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Install Rust uses: dtolnay/rust-toolchain@stable - name: Check if version matches tag run: | TAG=${GITHUB_REF#refs/tags/v} CARGO_VERSION=$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2) if [ "$TAG" != "$CARGO_VERSION" ]; then echo "Tag version ($TAG) doesn't match Cargo.toml version ($CARGO_VERSION)" exit 1 fi - name: Publish to crates.io run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}