name: Lint and Test Charts

on:
  pull_request:
    types: [opened, edited, reopened, synchronize]
    paths:
      - "helm/**"

# cancel previous workflow jobs for PRs
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
  cancel-in-progress: true

jobs:
  lint-test:
    runs-on: ubuntu-22.04
    steps:
      - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
        uses: actions/checkout@v4
        with:
          persist-credentials: false
          submodules: recursive
          fetch-depth: 0

      - name: Set up Helm
        uses: azure/setup-helm@v4
        with:
          version: v3.5.4

      - name: Setup Python
        uses: ./.github/actions/setup-backend/
        with:
          install-superset: 'false'

      - name: Set up chart-testing
        uses: ./.github/actions/chart-testing-action

      - name: Run chart-testing (list-changed)
        id: list-changed
        run: |
          changed=$(ct list-changed  --print-config)
          if [[ -n "$changed" ]]; then
            echo "changed=true" >> $GITHUB_OUTPUT
          fi
        env:
          CT_CHART_DIRS: helm
          CT_SINCE: HEAD

      - name: Run chart-testing (lint)
        run: ct lint --print-config
        env:
          CT_CHART_DIRS: helm
          CT_LINT_CONF: lintconf.yaml
          CT_SINCE: HEAD
          CT_CHART_REPOS: bitnami=https://charts.bitnami.com/bitnami
