name: goreleaser

on: 
  push:
    tags:
      - '*'

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - run: git fetch --force --tags
      - uses: actions/setup-go@v6
        with:
          go-version-file: 'go.mod'
      - name: import gpg
        id: import_gpg
        uses: crazy-max/ghaction-import-gpg@v7
        with:
          gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
          passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
      - name: get SDK version
        id: sdk_version
        run: echo "version=$(go list -f '{{.Version}}' -m code.gitea.io/sdk/gitea)" >> "$GITHUB_OUTPUT"
      - name: goreleaser
        uses: goreleaser/goreleaser-action@v7
        with:
            distribution: goreleaser-pro
            version: "~> v1"
            args: release
        env:
          SDK_VERSION: ${{ steps.sdk_version.outputs.version }}
          GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
          AWS_REGION: ${{ secrets.AWS_REGION }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          S3_REGION: ${{ secrets.AWS_REGION }}
          S3_BUCKET: ${{ secrets.AWS_BUCKET }}
          GORELEASER_FORCE_TOKEN: 'gitea'
          GPGSIGN_PASSPHRASE: ${{ secrets.GPGSIGN_PASSPHRASE }}
          GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
          GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
  release-image:
    runs-on: ubuntu-latest
    env:
      DOCKER_ORG: gitea
      DOCKER_LATEST: nightly
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          fetch-depth: 0 # all history for all branches and tags

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v4

      - name: Set up Docker BuildX
        uses: docker/setup-buildx-action@v4

      - name: Login to DockerHub
        uses: docker/login-action@v4
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Get tag version without v
        id: get_version
        run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV

      - name: Build and push
        uses: docker/build-push-action@v7
        env:
          ACTIONS_RUNTIME_TOKEN: '' # See https://gitea.com/gitea/act_runner/issues/119
        with:
          context: .
          file: ./Dockerfile
          platforms: |
            linux/amd64
            linux/arm64
          push: true
          tags: |
            gitea/tea:${{ env.VERSION }}