name: Release Charts

on:
  push:
    branches:
      - main

jobs:
  release:
    # depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions
    # see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
    permissions:
      contents: write
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Configure Git
        run: |
          git config user.name "$GITHUB_ACTOR"
          git config user.email "$GITHUB_ACTOR@users.noreply.github.com"

      - name: Install Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10' 

      - name: Generate children charts
        run: |
          pip install pyyaml
          python3 utils/generate-children-charts.py
          if [[ `git status --porcelain` ]]; then
            git add -A
            git commit -m "Automated changes"
            git push
          fi

      - name: Install Helm
        uses: azure/setup-helm@v3
        with:
          version: v3.8.1

      - name: Install helm-docs
        run: |
          cd /tmp
          wget https://github.com/norwoodj/helm-docs/releases/download/v1.11.0/helm-docs_1.11.0_Linux_x86_64.tar.gz
          tar -xvf helm-docs_1.11.0_Linux_x86_64.tar.gz
          sudo mv helm-docs /usr/local/sbin

      - name: Generate Helm docs
        run: |
          helm-docs -o README.md
          if [[ `git status --porcelain` ]]; then
            git add -A
            git commit -m "Generate Helm docs"
            git push
          fi

      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.5.0
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"