idt 0.1.1

A fast, ergonomic CLI tool for working with various ID formats
Documentation
name: Release

on:
  push:
    tags:
      - '[0-9]+.[0-9]+.[0-9]+'
      - '[0-9]+.[0-9]+.[0-9]+-*'

permissions:
  contents: write

jobs:
  read-msrv:
    uses: actions-rust-lang/msrv/.github/workflows/msrv.yml@8b553824444060021f2843d7b4d803f3624d15e5 # v0.1.0

  release:
    needs: read-msrv
    runs-on: ubuntu-latest
    steps:
      - name: Generate APP_TOKEN
        uses: actions/create-github-app-token@v2
        id: app-token
        with:
          app-id: ${{ secrets.HOMEBREW_TAP_APP_ID }}
          private-key: ${{ secrets.HOMEBREW_TAP_PRIVATE_KEY }}
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: ${{ needs.read-msrv.outputs.msrv }}
      - uses: mlugg/setup-zig@v2
      - uses: actions/setup-go@v6
        with:
          go-version: stable

      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v6
        with:
          version: '~> v2'
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          TAP_APP_TOKEN: ${{ steps.app-token.outputs.token }}

  publish:
    needs: read-msrv
    runs-on: ubuntu-latest
    environment: release
    permissions:
      id-token: write
    steps:
      - uses: actions/checkout@v6
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: ${{ needs.read-msrv.outputs.msrv }}
      - uses: rust-lang/crates-io-auth-action@v1
        id: auth

      - name: Publish to crates.io
        run: cargo publish
        env:
          CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}