pulldown-cmark-toc 0.7.0

Generate a table of contents from a Markdown document.
Documentation
name: build

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest

    env:
      RUSTFLAGS: --deny warnings

    strategy:
      matrix:
        toolchain: [stable, beta, nightly]

    steps:
    - uses: actions/checkout@v3

    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ matrix.toolchain }}
        components: clippy, rustfmt

    - name: Rustfmt
      run: cargo fmt -- --check

    - name: Clippy
      run: cargo clippy --workspace --all-targets -- -D warnings -D clippy::use-self -D clippy::items-after-statements -D clippy::if-not-else

    - name: Test
      run: cargo test --workspace

  publish:
    needs: [test]
    if: startsWith(github.ref, 'refs/tags/')

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - uses: dtolnay/rust-toolchain@stable

    - name: Calculate version from tag
      id: version
      run: echo "value=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT

    - name: Check tag against package version
      run: grep '^version = "${{ steps.version.outputs.value }}"$' Cargo.toml

    - name: Publish
      env:
        CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
      run: cargo publish