name: release
on:
  push:
    branches:
      - main
    tags:
      - "v*"

  pull_request:
    branches:
      - main

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: "0"
          fetch-tags: "true"

      - name: Login to container registry
        uses: docker/login-action@v3
        with:
          registry: code.icb4dc0.de
          username: prskr
          password: ${{ secrets.RELEASE_TOKEN }}

      - name: Setup Go
        uses: actions/setup-go@v5
        with:
          go-version-file: go.mod
          cache-dependency-path: go.sum
          check-latest: true

      - name: Init go
        run: |
          go mod download

      - name: Snapshot release
        uses: goreleaser/goreleaser-action@v6
        if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
        with:
          distribution: goreleaser
          version: latest
          args: release --clean --snapshot

      - name: Release
        uses: goreleaser/goreleaser-action@v6
        if: ${{ startsWith(github.ref, 'refs/tags/v') }}
        with:
          distribution: goreleaser
          version: latest
          args: release --clean
        env:
          GORELEASER_FORCE_TOKEN: gitea
          GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}