infer 0.22.0

Small crate to infer file type based on magic number signatures
Documentation
name: release

on:
  push:
    tags:
      - v*

jobs:
  
  github_build:
    name: GitHub Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v7
      - name: Install rustfmt
        run: rustup component add rustfmt
      - name: Install clippy
        run: rustup component add clippy
      - name: Check format
        run: cargo fmt --all -- --check
      - name: Lint (all features)
        run: cargo clippy --all-targets --all-features -- -D clippy::all
      - name: Lint (no_std)
        run: cargo clippy --all-targets --no-default-features --features alloc -- -D clippy::all
      - name: Lint (no_alloc)
        run: cargo clippy --all-targets --no-default-features -- -D clippy::all
      - name: Test (default)
        run: cargo test --verbose
      - name: Test (no_std)
        run: cargo test --no-default-features --features alloc --verbose
      - name: Test (no_alloc)
        run: cargo test --no-default-features --verbose

  github_release:
    name: Create GitHub Release
    needs: github_build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: Generate release notes
        run: |
          export PATH=$PATH:$(go env GOPATH)/bin
          go install github.com/git-chglog/git-chglog/cmd/git-chglog@latest
          git-chglog -c .chglog/config.yml $(git describe --tags) > RELEASE.md
      - name: Create GitHub release ${{ matrix.target }}
        uses: softprops/action-gh-release@v3
        with:
          body_path: RELEASE.md
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  # Publish to Crates.io
  cargo_publish:
    name: Publish Cargo Package
    needs: github_build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v7
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo login $CRATES_IO_TOKEN
      - run: cargo publish
    env:
      CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}