name: goreleaser

on:
  push:
    tags:
      - 'v*'

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: |
          git fetch --prune --unshallow
      - name: Generate version
        run: echo "VERSION=$(git describe --always --tags --dirty)" >> $GITHUB_ENV
      - name: Install gcc for arm64
        run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
      - name: Set up Go
        uses: actions/setup-go@v5
        with:
          go-version-file: 'go.mod'
      - name: Build WebUI dependencies
        run: cd ./internal/webui/public && npm install
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v6
        with:
          version: latest
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          VERSION: ${{ env.VERSION }}