name: "Release Binary"

# Pairs with .goreleaser.yaml file for configuration.

on:
  push:
    branches:
      - master
    tags:
      - v*

permissions:
  contents: write

jobs:
  goreleaser:
    permissions: write-all
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.3.4
        with:
          fetch-depth: 0

      - uses: actions/setup-go@v3
        with:
          go-version: "1.21"

      - name: Clean up dist directory
        run: rm -rf dist

      - name: Build
        uses: goreleaser/goreleaser-action@v5
        with:
          version: latest
          args: build --skip-validate

      - name: Release
        uses: goreleaser/goreleaser-action@v5
        if: startsWith(github.ref, 'refs/tags/')
        with:
          version: latest
          args: release --skip-validate --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
