Documentation
name: Build & Publish

on:
    push:
        tags:
            - "v*"

permissions:
    contents: read

jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4

            - uses: dtolnay/rust-toolchain@stable

            - name: Build
              run: cargo build --release

            - name: Test
              run: cargo test

    publish:
        needs: build
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4

            - uses: dtolnay/rust-toolchain@stable

            - name: Publish to crates.io
              run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}