name: Release Helm Chart (WIP)

on:
  push:
    branches:
      - main
    paths:
      - 'charts/**'
  workflow_dispatch:

jobs:
  release:
    if: github.repository == 'we-promise/sure'
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pages: write
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Configure Git
        env:
          GIT_USER_NAME: ${{ github.actor }}
          GIT_USER_EMAIL: ${{ github.actor }}@users.noreply.github.com
        run: |
          git config user.name "$GIT_USER_NAME"
          git config user.email "$GIT_USER_EMAIL"

      - name: Install Helm
        uses: azure/setup-helm@v3

      - name: Generate nightly version
        id: version
        run: |
          # Generate version like: 0.0.0-nightly.20251213.173045
          VERSION="0.0.0-nightly.$(date -u +'%Y%m%d.%H%M%S')"
          echo "version=$VERSION" >> $GITHUB_OUTPUT
          echo "Generated version: $VERSION"

      - name: Update Chart.yaml version
        run: |
          sed -i "s/^version:.*/version: ${{ steps.version.outputs.version }}/" charts/sure/Chart.yaml
          cat charts/sure/Chart.yaml

      - name: Add Helm repositories
        run: |
          helm repo add cloudnative-pg https://cloudnative-pg.github.io/charts
          helm repo add ot-helm https://ot-container-kit.github.io/helm-charts
          helm repo update

      - name: Build dependencies
        run: |
          helm dependency build charts/sure

      - name: Package chart
        run: |
          mkdir -p .cr-release-packages
          helm package charts/sure -d .cr-release-packages

      - name: Checkout gh-pages
        uses: actions/checkout@v4
        with:
          ref: gh-pages
          path: gh-pages

      - name: Update index and push
        env:
          GIT_USER_NAME: ${{ github.actor }}
          GIT_USER_EMAIL: ${{ github.actor }}@users.noreply.github.com
        run: |
          # Copy packaged chart
          cp .cr-release-packages/*.tgz gh-pages/

          # Update index
          helm repo index gh-pages --url https://we-promise.github.io/sure --merge gh-pages/index.yaml

          # Push to gh-pages
          git config --global credential.helper cache
          cd gh-pages
          git config user.name "$GIT_USER_NAME"
          git config user.email "$GIT_USER_EMAIL"
          git add .
          git commit -m "Release nightly: ${{ steps.version.outputs.version }}"
          git push
