name: publish-gitea
on:
  workflow_dispatch:
    inputs:
      tag:
        description: "GitHub release tag to publish (default: latest)"
        required: false
        default: latest

jobs:
  publish:
    runs-on: [self-hosted, linux, x64]
    steps:
      - name: Publish to Gitea
        run: |
          set -euo pipefail
          apk add --no-cache curl jq python3 >/dev/null 2>&1 || true
          for i in $(seq 1 40); do
            rm -rf repo
            git clone -q --depth 1 http://192.168.30.33:3000/TomHanck4/dsh-easy-desktop.git repo 2>/dev/null || { sleep 5; continue; }
            if grep -qF 'export GITEA_OWNER="$REPO_OWNER"' repo/scripts/publish-gitea-actions.sh 2>/dev/null; then
              echo "publish scripts fresh (attempt ${i})"
              break
            fi
            sleep 10
          done
          grep -qF 'export GITEA_OWNER="$REPO_OWNER"' repo/scripts/publish-gitea-actions.sh || {
            echo "mirror still stale after ~6 minutes" >&2
            exit 1
          }
          cd repo
          bash scripts/publish-gitea-actions.sh
        env:
          GITEA_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
          GITEA_BASE_URL: http://192.168.30.33:3000
          RELEASE_TAG: ${{ github.event.inputs.tag }}
        working-directory: /tmp