name: Build and release

on:
  # label:
  #   types: created
  push:
    tags:
      - 'v*'
  workflow_dispatch:

permissions:
  contents: write

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:

    - name: Set tag reference from input
      if: github.event.ref != ''
      run: |
        echo "GIT_REF=refs/tags/${{ github.event.ref}}" >> $GITHUB_ENV

    - name: Set tag reference from github.ref
      if: github.ref != ''
      run: | 
        echo "GIT_REF=${{ github.ref }}" >> $GITHUB_ENV
        

    - name: Checkout
      uses: actions/checkout@v5
      with:
        fetch-depth: 0
        ref: ${{ env.GIT_REF }}        

    - name: Set up Go
      uses: actions/setup-go@v6
      with:
          go-version-file: "go.mod"
          cache-dependency-path: "go.sum"
      
    - name: Run GoReleaser
      uses: goreleaser/goreleaser-action@v6
      with:
        distribution: goreleaser
        version: '~> v2'
        args: release --clean
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
