name: Publish on crates.io

on:
  push:
    tags:
      - v*

env:
  CARGO_TERM_COLOR: always
  CARGO_INCREMENTAL: 0

jobs:
  publish:

    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install Rust stable
        run: |
          rustup toolchain install stable --profile minimal --no-self-update

      - name: Verify publish crate
        uses: katyo/publish-crates@v1
        with:
          dry-run: true

      - name: Publish crate
        uses: katyo/publish-crates@v1
        with:
          registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
