name: Release
on: 
  push:
    tags:
      - v*
  workflow_dispatch:

env:
  GO_VERSION: 1.24.5

jobs:
  release:
    name: Release
    strategy:
      matrix:
        platform: [ubuntu-latest]
    runs-on: ${{ matrix.platform }}
    steps:
      - name: Set up Go
        uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c
        with:
          go-version: ${{ env.GO_VERSION }}
        id: go

      - name: Check out code into the Go module directory
        uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
        with:
          fetch-depth: 0

      # https://github.com/marketplace/actions/cache
      - name: Cache Go modules
        uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb
        with:
          path: |
            ~/.cache/go-build
            ~/go/pkg/mod
          key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
          restore-keys: |
            ${{ runner.os }}-go-

      # https://goreleaser.com/ci/actions/
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a
        #if: startsWith(github.ref, 'refs/tags/v')
        with:
          version: latest
          args: release -f .goreleaser.yml --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
